Brevet FR2848692A1 — publié le 20040618

-1 La présente invention se rapporte à des dispositifs et procédés de comptabilisation temporelle et d'analyse temporelle d'événements, notamment applicables à des services logiciels. Elle peut concerner en particulier le contrôle d'occurrences d'événements ou l'analyse de dysfonctionnements en relation avec ces événements. Le développement des réseaux informatiques a multiplié les possibilités d'accéder à distance à des services disponibles sur certaines machines, tels que notamment des jeux, des programmes éducatifs, des 10 vidéos ou des musiques. Les services logiciels, en particulier, reposent sur la présence d'un logiciel exécutable dans une des machines et l'accès en exécution de ce logiciel depuis un appareil relié à cette machine par un réseau. Il s'avère alors très utile de pouvoir garder une trace temporelle des appels successifs, afin de mettre en place une gestion efficace allant au-delà 15 d'une simple addition des appels et être capable de diagnostiquer avec plus de facilités les circonstances et les causes de dysfonctionnements éventuels. Un tel suivi est par exemple précieux pour un fournisseur de 20 logiciel licenciant son produit auprès d'un prestataire de services et recevant une rétribution qui dépend du nombre d'appels pour une période donnée. L'existence de fichiers récapitulant l'ensemble des appels passés, créés chez le prestataire de service mais accessibles au fournisseur de logiciel, permet alors à ce dernier de contrôler le nombre effectif d'appels et de 25 facturer en conséquence le prestataire de services. Cependant, des inscriptions consécutives des temps d'appels conduisent à des fichiers de tailles croissantes et rapidement embarrassantes, voire prohibitives, dès lors que le nombre d'appels devient 30 important. La demande de brevet WO-01/82033 divulgue une méthode de détection d'utilisation de programme à des fins de facturation. Selon cette méthode, tous les appels à une fonction du programme sont enregistrés dans un fichier historique (" log file " en anglais), de façon à permettre de 5 facturer le licencié en fonction de l'étendue d'exploitation du programme. Une identification représentant le nombre d'appels est alors coenregistrée avec une identification du temps système et une signature cryptographique, après un nombre prédéterminé d'appels ou dans des premiers intervalles de temps prédéfinis. Le nombre d'inscriptions est ainsi réduit, puisque celles-ci ne sont pas effectuées de manière systématique, mais épisodiquement. Cependant, dans la mesure o les résultats obtenus sont enregistrés à une fréquence suffisante pour rester fiables, cette méthode ne résout pas le problème de 15 croissance de taille de fichier, mais ne peut qu'en atténuer ou en retarder les effets. Il serait par ailleurs envisageable de transférer vers un espace de stockage indépendant les résultats obtenus, soit en temps réel, soit dès que 20 les fichiers d'informations atteignent une taille prédéfinie. Cependant, un tel mécanisme risque de requérir des ressources en stockage assez volumineuses, et contraint à mettre en place un dispositif de transfert pénalisant pour le fonctionnement efficace de la machine contenant le logiciel. La présente invention concerne un dispositif de comptabilisation temporelle d'appels à un service logiciel disponible sur une machine, pouvant être capable de fournir des résultats significatifs tout en résolvant le problème de croissance de tailles des fichiers historiques, et sans porter 30 préjudice au fonctionnement courant de la machine. Plus généralement, l'invention concerne un dispositif de comptabilisation temporelle d'événements, qui peut rendre possible une reconstitution temporelle au moins partielle des occurrences de ces événements, suffisante pour obtenir les renseignements voulus, tout en 5 offrant les avantages mentionnés ci-dessus. Elle peut être particulièrement appréciable pour des systèmes embarqués. L'invention concerne aussi un procédé de comptabilisation d'événements correspondant au dispositif de comptabilisation de l'invention, 10 et un dispositif et un procédé d'analyse temporelle d'événements permettant d'exploiter des résultats obtenus au moyen d'un dispositif ou d'un procédé de comptabilisation d'événements selon l'invention. Elle s'applique en particulier au contrôle d'appels à un service 15 logiciel, à des fins de facturation ou de diagnostics de dysfonctionnements. Elle a cependant également des applications à d'autres types de contrôle ou d'analyses de dysfonctionnements, tels que notamment: - le suivi d'utilisation d'une fonctionnalité informatique disponible sur une machine; ceci permet de retracer l'utilisation d'une fonction en cas 20 de panne logicielle ou matérielle; - le suivi d'appels téléphoniques, passés à partir d'un central téléphonique et/ou reçus par celui-ci; - le suivi de commandes et de fournitures de programmes vidéo (VOD pour " Video On Demand ") ou audio (fichiers MP3 par exemple) 25 relatives à un serveur (ou plusieurs); - le suivi de manoeuvres effectuées de manière répétée sur des véhicules automobiles, par exemple l'utilisation de freins, de l'accélérateur et/ou de la boîte de vitesses; - le suivi d'événements circonstanciels, par exemple dans le 30 domaine aéronautique les présences à des altitudes supérieures (ou inférieures) à un seuil, et dans le domaine médical, les dépassements d'un -4- plafond, ou affaissements en deçà d'un plancher, de taux d'un élément dans le sang (insuline, glucose, globules blancs...). A cet effet, l'invention a pour objet un comptabilisation temporelle d'événements, comprenant: - un module d'entrée en temps réel d'occurrences physiques, dispositif de d'événements - un module d'accès à au moins une horloge, prévu pour obtenir un temps courant à chaque entrée d'une des occurrences, - et un module d'enregistrement dans au moins un fichier de comptabilisation, d'informations relatives à ces occurrences et aux temps courants correspondants, ces informations autorisant une reconstitution temporelle au moins partielle des occurrences. Selon l'invention, le dispositif de comptabilisation comprend aussi un module de traitement synthétique des occurrences et des temps courants, prévu pour produire des résultats condensés. De plus, le module d'enregistrement est prévu pour enregistrer les résultats condensés dans des structures de données prédéfinies et de tailles préfixées du fichier de 20 comptabilisation, de façon à permettre de maintenir constante la taille du fichier lors des enregistrements successifs des informations. Ainsi, contre toute attente, les informations temporelles souhaitées peuvent être réunies sous forme synthétisée dans un fichier de 25 taille constante, ou dans plusieurs fichiers prédéfinis ayant chacun une taille constante. Ce résultat surprenant repose d'une part sur le traitement synthétique des occurrences et des temps, qui permet de réduire le nombre d'informations à stocker, et d'autre part sur l'utilisation de structures de données prédéfinies et de tailles préfixées dans le fichier de comptabilisation 30 (ou dans chacun des fichiers). -5 Concrètement, chacune de ces structures de données est associée à une information spécifique et à un traitement correspondant. Par exemple, la structure de données peut consister en un mot de quatre octets destiné à recevoir le nombre cumulé d'occurrences intervenues entre 12h et 5 13h chaque jour pendant une semaine. Dans un autre exemple, la structure de données est destinée à recevoir le nombre de fois o des occurrences sont intervenues pendant plus d'une minute d'affilée, les événements examinés correspondant à des mesures effectuées avec un pas d'échantillonnage temporel de 2 secondes. Le traitement synthétique 10 effectué repose donc sur des algorithmes spécifiques permettant de " consolider " les résultats. La reconstitution temporelle au moins partielle est relative aux buts visés: si on veut cerner un dysfonctionnement dans le temps à 1 15 seconde près, les informations enregistrées doivent être suffisantes pour cerner à 1 seconde près toutes les occurrences intervenues; si on veut contrôler les appels à un logiciel, elles doivent permettre de connaître de manière sre le nombre d'appels et de vérifier au moins statistiquement leur répartition temporelle. Dans tous les cas, la reconstitution temporelle permet 20 au moins de manière approximative de reconstituer l'historique des événements intervenus. On peut distinguer deux catégories d'événements auxquelles le dispositif de l'invention a la capacité de s'appliquer: - ceux qui sont détectés passivement lorsqu'ils adviennent ponctuellement, de manière généralement imprévisible dans le détail de leurs occurrences; cette catégorie inclut par exemple des appels téléphoniques ou à un logiciel, des mises en route de moteurs ou des appuis sur un frein; - et ceux qui sont provoqués par des mesures, à des instants d'échantillonnage déterminés; cette catégorie repose par exemple sur des mesures d'altitudes ou de vitesses, les événements consistant en certaines -6 particularités des altitudes ou vitesses mesurées (la vitesse dépasse des niveaux de sécurité prédéfinis, l'altitude devient inférieure ou supérieure à des altitudes critiques...). Pour traiter un seul type d'événements, l'utilisation d'un unique fichier est préférée. Il est ainsi possible de concentrer toute l'information requise, ce qui simplifie et allège les accès en enregistrement puis les étapes d'exploitation. Par ailleurs, lorsqu'on s'intéresse à plusieurs catégories d'événements distincts, plusieurs fichiers de comptabilisation sont 10 préférentiellement utilisés, un fichier par catégorie d'événements. Cette réalisation facilite une indépendance des traitements et de l'exploitation des résultats, et clarifie l'utilisation de ces fichiers. L'accès à l'horloge ou aux horloges peut être direct ou non. Par 15 exemple, dans un mode particulier de réalisation, le dispositif de comptabilisation est informé à la fois de l'occurrence d'un événement et de l'instant associé, par un ou plusieurs systèmes externes. L'exploitation combinée de plusieurs horloges suppose une synchronisation adéquate de celles-ci, au moins lorsqu'elles portent sur un même type d'événements. 20 La possibilité d'obtenir des fichiers de tailles fixes est particulièrement intéressante pour des systèmes embarqués, pour lesquels les considérations de stockage peuvent être déterminantes. Dans une forme préférée de réalisation, le module de traitement synthétique est prévu pour produire au moins deux types de résultats distincts, au moins un de ces types de résultats comprenant des redondances par rapport aux autres types de résultats, de façon à permettre des contrôles de cohérence des résultats. 30 Cette réalisation est particulièrement pertinente pour des contrôles pratiqués sur les événements advenus, par exemple pour vérifier le -7 nombre d'appels à un service logiciel chez un licencié en vue d'une facturation, les fichiers étant alors avantageusement cryptés. Dans ce mode de réalisation préféré, il est avantageux que le 5 module de traitement synthétique soit prévu pour que les différents types de résultats fournissent des informations complémentaires. Ainsi, l'existence de plusieurs types ne sert pas seulement à valider les résultats de manière plus fiable, mais aussi à cumuler des informations utiles pour des analyses ultérieures. Selon un mode préféré de ces types de résultats, ceux-ci comprennent: - un premier type de résultats consistant en des nombres des occurrences par plages de durées d'écarts entre deux des occurrences 15 consécutives - et un deuxième type de résultats consistant en des nombres des occurrences par plages temporelles consécutives d'une période déterminée. Ainsi, aux informations de succession des événements par plages 20 temporelles dans un délai donné, par exemple pendant un mois (deuxième type de résultats), s'ajoutent des informations sur la répartition des événements selon les durées qui les séparent (premier type). Il est ainsi possible d'affiner les renseignements portant sur le déroulement chronologique, en s'intéressant aux fréquences d'occurrences. 25 Préférentiellement, les plages de durées d'écarts du premier type de résultats ont alors des amplitudes croissant non strictement avec ces durées (c'est-à-dire qui augmentent avec les durées mais peuvent admettre des paliers). Selon plusieurs modalités intéressantes de réalisation du dispositif de comptabilisation de l'invention, les événements physiques comprennent, séparément ou en combinaison(s): - des appels à un logiciel situé sur une machine source par des appareils aptes à communiquer avec cette machine; des appels téléphoniques; - des manoeuvres prédéfinies dans un véhicule automobile, par exemple l'utilisation des freins pour savoir si une usure des plaquettes de frein est normale ou non; - des utilisations de fonctionnalités informatiques disponibles sur une machine et susceptibles de subir des dysfonctionnements par suite de problèmes techniques; par exemple, pour analyser l'origine de plantages informatiques, on prévoit un jeu de fichiers de comptabilisation, comprenant un fichier par fonction soupçonnée de pouvoir conduire à un plantage, afin 15 d'examiner s'il existe un lien entre l'utilisation (ou la grande fréquence d'utilisation) d'une fonction et l'anomalie constatée. L'invention concerne aussi un procédé de comptabilisation temporelle d'événements, dans lequel: - on repère en temps réel des occurrences d'événements physiques, - on accède à au moins une horloge pour obtenir un temps courant de chacune de ces occurrences - et on enregistre dans au moins un fichier de comptabilisation 25 des informations relatives aux occurrences et aux temps courants correspondants, ces informations autorisant une reconstitution temporelle au moins partielle des occurrences. Selon l'invention, on effectue automatiquement un traitement 30 synthétique des occurrences et des temps courants, de façon à produire des résultats condensés et on enregistre les informations sous forme des résultats condensés, dans des structures de données prédéfinies et de -9 tailles préfixées du fichier de comptabilisation, de façon à permettre de maintenir constante la taille de ce fichier lors des enregistrements successifs des informations. Ce procédé est préférentiellement mis en oeuvre au moyen d'un quelconque des modes de réalisation du dispositif de comptabilisation de l'invention. L'invention a aussi pour objet un dispositif d'analyse temporelle 10 d'événements à partir d'au moins un fichier de comptabilisation obtenu au moyen d'un dispositif de comptabilisation dans lequel au moins deux types de résultats distincts avec redondances sont utilisés. Ce dispositif comprend: - un module d'extraction des résultats enregistrés dans ce fichier, 15 - un module de vérification de cohérences des résultats respectivement de ces types de résultats, - et un module de production d'un signal d'avertissement à l'intention d'un utilisateur en cas d'incohérence de ces résultats. Avantageusement, le fichier de comptabilisation étant alors obtenu au moyen d'un dispositif de comptabilisation pour lequel les types de résultats fournissent des informations complémentaires, le dispositif d'analyse temporelle comprend aussi: - un module d'entrée de requêtes d'un utilisateur, ces requêtes 25 portant sur des renseignements temporels concernant les occurrences des événements, - un module de traitement combiné des types de résultats, prévu pour produire les renseignements temporels en fonction des informations enregistrées, - et un module de présentation de ces renseignements temporels à l'utilisateur. -10 L'invention s'applique également à un procédé d'analyse temporelle d'événements correspondant au dispositif d'analyse d'événements de l'invention, et qui est préférentiellement mis en oeuvre au moyen d'un des modes de réalisation de ce dernier. L'invention concerne aussi un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé de comptabilisation ou d'analyse temporelle d'événements de l'invention, lorsque ce programme est exécuté sur un 10 ordinateur. Par " produit programme d'ordinateur ", on entend un support de programme d'ordinateur, qui peut consister non seulement en un espace de stockage contenant le programme, tel qu'une disquette ou une cassette, mais aussi en un signal, tel qu'un signal électrique ou optique. L'invention sera mieux comprise et illustrée au moyen des exemples suivants de réalisation et de mise en oeuvre, nullement limitatifs, en référence aux figures annexées sur lesquelles: - la Figure 1 est un schéma de principe d'un dispositif de 20 comptabilisation temporelle d'événements conforme à l'invention; - la Figure 2 est un schéma de principe d'un dispositif d'analyse temporelle d'événements associé au dispositif de la Figure 1; - la Figure 3 montre un premier type de résultats obtenus avec le dispositif de la Figure 1 et prévu pour être analysé au moyen du dispositif de 25 la Figure 2, sous forme d'histogramme donnant le nombre d'occurrences d'événements en fonction de plages de durées d'écarts entre deux événements consécutifs; - la Figure 4 montre un second type de résultats obtenus avec le dispositif de la Figure 1 et prévu pour être analysé au moyen du dispositif de 30 la Figure 2, sous forme d'histogramme donnant le nombre d'occurrences d'événements en fonction de plages de temps consécutives. - 11 Sur les Figures 1 et 2, les modules représentés sont des unités fonctionnelles, qui peuvent ou non correspondre à des unités physiquement distinguables. Par exemple, ces modules ou certains d'entre eux peuvent être regroupés dans un unique composant, ou constituer des fonctionnalités 5 d'un même logiciel. A contraro, certains modules peuvent éventuellement être composés d'entités physiques séparées. Un dispositif de comptabilisation temporelle 1 d'événements (Figure 1) est relié à un module 5 de détection d'événements, capable de 10 détecter tout déclenchement d'un événement d'une catégorie prédéfinie, par exemple l'accès à un service logiciel par des tiers ou le déclenchement d'opérations particulières effectuées sur la machine hébergeant le dispositif 1 (mise en route, accès à Internet...). A titre d'exemple, le module 5 est prévu pour détecter trois types d'événements distincts. 15 Le dispositif de comptabilisation temporelle 1 est prévu pour produire des informations relatives aux occurrences des événements considérés et à leur déroulement temporel, et à inscrire ces informations dans des fichiers de comptabilisation FI, F2 et F3 associés respectivement 20 aux trois catégories d'événements détectés. Ce dispositif 1 comprend un module d'entrée 11 en temps réel d'occurrences d'événements détectés par le module de détection 5, un module d'accès 12 à une ou plusieurs horloge(s) 10, permettant d'obtenir un 25 temps courant à chaque entrée d'une des occurrences, et un module d'enregistrement 15 des informations mentionnées plus haut dans les fichiers F1, F2 et F3. Le dispositif 1 comprend aussi un module 13 de traitement 30 synthétique des occurrences et des temps courants, produisant des résultats condensés qui forment les informations à sauvegarder et les transmettant au module d'enregistrement 15. Ce dernier est pour sa part chargé d'enregistrer -12 ces résultats condensés dans des structures de données prédéfinies et de tailles fixées des fichiers Fl, F2 et F3. Les fichiers FI, F2 et F3 sont rendus disponibles pour un 5 dispositif d'analyse temporelle 2 d'événements (Figure 2), chargé d'exploiter les résultats enregistrés dans ces fichiers. Dans le mode de réalisation détaillé, le dispositif 2 est capable, après un éventuel décryptage, de vérifier la cohérence des informations fournies et de fournir des renseignements spécifiques en réponse à des requêtes formulées par un utilisateur. 10 Ce dispositif 2 comprend un module d'extraction 21 de résultats à partir des fichiers F1, F2 et F3, un module de vérification de cohérence 22 au sein de chacun des fichiers, des résultats qui y sont extraits, et un module de production 23 d'un signal S vers une interface utilisateur 20 en cas de 15 repérage d'incohérence. La cohérence des informations est vérifiée séparément pour chacun des fichiers FI, F2 et F3, et consiste par exemple à s'assurer que la somme de durées associées à des événements (telles que les durées d'écarts entre les débuts de deux événements consécutifs) ne dépasse pas un plafond correspondant à une durée totale de mise en 20 oeuvre, ou que des informations redondantes ne sont pas contradictoires. Le dispositif d'analyse temporelle 2 comprend aussi une unité d'entrée 24 de requêtes via l'interface utilisateur 20, pour obtenir notamment des renseignements statistiques (répartition des occurrences en fonction des 25 heures de la journée ou de la période du mois, durée moyenne d'écart entre deux occurrences...) ou factuels (nombre d'occurrences intervenues dans telle plage horaire du mois, durée d'une interruption, identification des interruptions supérieures à 1h...). Un module de traitement combiné 25 des résultats est apte à exploiter les informations extraites des fichiers F1, F2 et 30 F3 pour répondre aux requêtes ainsi formulées. Ce module 25 transmet les renseignements voulus, ou éventuellement un message d'impossibilité de -13 réponse, à un module de présentation 26 d'informations, qui communique avec l'interface utilisateur 20. Le fonctionnement des dispositifs 1 et 2 va être détaillé sur un cas 5 particulier, dans lequel l'une des trois catégories d'événements consiste en des appels à un service logiciel. Les modalités de mise en oeuvre sont explicitées seulement pour cette catégorie d'événements, une démarche similaire étant par exemple adoptée pour les autres catégories. Un logiciel exécutable fournissant le service logiciel est situé sur une machine unique, appelée " machine source ". Il peut être appelé par toutes les machines appartenant au même réseau, et exécuté sur ces machines. L'accès au logiciel est protégé, la protection étant liée à la machine source. Le dispositif de comptabilisation 1, présent dans la machine 15 source, permet de comptabiliser l'ensemble des appels dans le fichier FI. Ce dernier est situé ici dans le même répertoire que l'exécutable, et garde une taille de quelques k-octets. Sa constitution permet au dispositif d'analyse temporelle 2 de vérifier que les utilisateurs ne l'ont pas modifié, comme ceci est exposé plus bas. Le dispositif 1 utilise une spécificité des machines organisées en réseau, à savoir que toutes ces machines ont la même heure à la seconde près, et que l'accès en écriture à un fichier donné ne peut être fait que par une seule machine à un instant donné, même si toutes ces machines ont 25 accès à ce fichier. Lorsqu'une machine a exécuté le logiciel, elle écrit dans le fichier la " date " à laquelle elle l'a fait. Les horloges 10 sont donc dans le présent cas disséminées dans les différentes machines et synchronisées, le module d'accès 12 du dispositif 1 recevant indirectement les temps de ces horloges. La machine concernée soustrait de plus de cette date, la " date " 30 du précédent appel. On obtient ainsi une durée appelée At. -14 Suivant les laps de temps entre deux appels, At peut valoir 1 s, 2s, 3s... lmn... 1mn20s... 2mn... 1h... 1 jour... 1 semaine, les durées At étant échantillonnées de manière non linéaire (c'est-à-dire que le pas d'échantillonnage varie). Pour chaque pas, le module de traitement 5 synthétique 13 comptabilise toutes les durées At en les stockant dans un registre correspondant à ce pas. Grâce à l'échantillonnage non linéaire, on obtient des informations pertinentes en limitant les stockages requis. En effet, s'il est utile de savoir à la seconde près la durée entre deux appels séparés de 10 s (c'est-à-dire avec une précision de 10%), il est inutile de 10 connaître à la seconde près la durée entre deux appels séparés de 1 jour (pour conserver une précision de 10%, un pas de 2 heures suffit). Par exemple: * Pour At variant de 0 s à 59 s, le pas vaut une seconde; 15 soixante registres Rao à Ra59 sont alors réservés dans le fichier F1 pour comptabiliser ces durées At. Si la durée At vaut 30 s, on ajoute 1 au registre Ra29. On a ainsi un histogramme des durées At compris entre 0 s et 59 s, avec un pas de 1 seconde. * Pour At variant de 1 mn à 4mn58s, le pas vaut deux secondes. 20 Dans le fichier F1, sont alors réservés ( 5 - 1) * 60 / 2 = 120 registres appelés Rbo à Rb1 19pour comptabiliser ces durées At. Si At vaut 2mn17s, on ajoute I au registre Rb38. On a ainsi un histogramme des At compris entre 1 mn et 4mn58s, avec un pas de 2 secondes. * Pour At variant de 5mn à 15mn55s, le pas vaut cinq secondes. 25 Dans le fichier F1, sont alors réservés ( 15 - 5) * 60 / 5 = 120 registres appelés Rco à Rc11g pour comptabiliser ces durées At. Si At vaut 10mnO3s, on ajoute I au registre Rc60. On a ainsi un histogramme des At compris entre 5mn et 15mn55s, avec un pas de 5 secondes. À o..,. 30. Pour At variant de 2h à 4h, le pas vaut 1 mn. Dans le fichier F1, sont alors réservés ( 4 - 2) * 60 = 120 registres appelés Rno à Rn119 pour comptabiliser ces durées At. Si At vaut 1h, on ajoute 1 au registre Rn60. On -15 a ainsi un histogramme des At compris entre 2h et 2h59mn, avec un pas de 1 mn. * Pour At variant de 1 jour à 10 jours, le pas vaut 1 heure. Dans 5 le fichier FI, sont alors réservés ( 10 -1) * 24 = 216 registres appelés Rxo à Rx215 pour comptabiliser ces durées At. Si At vaut 8 jours, 2 heures, 13 mn et 15 s, on ajoute 1 au registre Rx194. On a ainsi un histogramme des At compris entre 1 et 10 jours, avec un pas de 1 heure. On obtient ainsi un histogramme HI (Figure 3), donnant des nombres Ni d'occurrences des appels (axe 32) en fonction de plages PEi de durées d'écart At entre deux occurrences consécutives (axe 31). En imposant qu'au début de l'utilisation du logiciel, l'histogramme HI est vierge, on peut en l'analysant périodiquement (période P), par exemple tous les mois, connaître la durée d'utilisation du logiciel. La période P est convenue préalablement dans le protocole entre le client et le fournisseur du logiciel, qui héberge le dispositif d'analyse temporelle 2. Le 20 client envoie ainsi le fichier Fl au fournisseur selon cette périodicité (la périodicité peut être différente pour les fichiers Fl, F2 et F3, bien qu'un envoi groupé soit plus pratique à mettre en oeuvre). Dans le cas illustré par l'histogramme HI, on suppose qu'il s'agit d'un premier mois de suivi, donc que les résultats visualisés sont directement représentatifs des événements 25 intervenus durant ce mois. Au-delà, il convient de soustraire de l'histogramme HI le plus récent, celui obtenu le mois précédent, opération qu'effectue automatiquement le dispositif d'analyse temporelle 2. Considérons la plage PEi, tranche de temps comprise entre Ati et 30 Ati+1, et le nombre Ni d'utilisations durant cette tranche de temps, donnant le nombre de fois o l'intervalle de temps entre deux appels est compris entre Ati et At1+1. Si par exemple Ni = 20, ti = 1h et tj+1 = 2h, et si Ni est la seule -16 valeur non nulle des nombres d'occurrences, on sait que le logiciel a été utilisé au minimum pendant 20 heures et au maximum pendant 40 heures, et que dans cette durée, ont eu lieu 20 appels aulogiciel. Si dans un autre exemple Ni = 1, ti = 4 jours et t1+i = 5 jours, on sait qu'une interruption de 4 ou 5 jours s'est produite. En mode d'utilisation courante, le client envoie tous les mois à la même heure le fichier FI ainsi défini. En faisant la différence par plages PEI du contenu des histogrammes HI d'un mois à l'autre, le dispositif d'analyse 10 temporelle 2 détermine les nombres d'occurrences Ni pour le mois courant. Le fichier FI est donc conservé chez le client et automatiquement mis à jour à mesure des appels, et n'a pas à être manipulé par ce client. Un second histogramme H2 (Figure 4) est enregistré dans le 15 fichier FI. Il donne le nombre N', d'accès au logiciel (axe 34) durant chaque plage de temps PTj d'une période P (axe 33), correspondant ici à chaque heure du mois pour les 54 premières heures. On découpe donc le mois en 24 h * 31 jours, soit 744 registres. Comme pour l'histogramme HI, l'histogramme H2 représenté ici est établi durant le premier mois. Pour les 20 mois suivants, les résultats sont obtenus à partir du fichier FI communiqué par le client en soustrayant de l'histogramme H2 le plus récent, celui obtenu le mois précédent. Si une interruption de plus d'une heure se produit, il est donc 25 possible de l'identifier, puisque les registres liés à ces heures ne sont pas incrémentés durant le mois considéré. Ainsi, on constate qu'une interruption de service (référencée 35 sur l'histogramme H2) a probablement eu lieu pendant deux heures (heures 36 et 37), puisque 24 heures plus tôt, le nombre d'appels était très élevé (environ 3000 appels pour la treizième 30 heure, et environ 600 pour la quatorzième). -17 En utilisant les deux types de stockage d'information décrit cidessus, le dispositif d'analyse temporelle 2 (module de vérification 22) peut détecter d'éventuelles fraudes du client, notamment dans les cas exposés ciaprès: * une durée d'écart At importante (par exemple supérieure à deux jours) a été détectée dans l'histogramme HI, correspondant à un nombre d'heures de non utilisation (par exemple 50) dans l'histogramme H2, alors que le client déclare ne pas avoir arrêté le service d'appel au logiciel: c'est donc qu'il a fait à un moment donné une copie du fichier FI, et qu'il a 10 mis cette copie à la place du fichier F1 courant deux jours plus tard; * une heure de non appel est repérée dans l'histogramme H2, alors que dans l'histogramme HI, les durées d'écart At comprises entre 1 h et 2 h sont toutes nulles (l'un d'entre eux devrait être non nul puisqu'il y a eu une interruption d'au moins une heure, donc un délai d'au moins une heure 15 entre deux appels): le client a donc modifié le fichier FI, puisqu'il y a incohérence; * le nombre d'appels est nul pour toutes les heures dans l'histogramme H2, alors que dans l'histogramme HI, une des durées d'écart At supérieures à 2 heures est associée à des appels: le client a modifié le 20 fichier Fl, puisqu'il y a incohérence. De plus: - à tout moment, la somme totale des contenus des registres de l'histogramme H2 doit être égale à la somme totale des contenus des 25 registres par heure de l'histogramme HI; - et sur un mois, les sommes X N1Ati et Y N1At1+1 dans l'histogramme H2 doivent être respectivement inférieure et supérieure à un mois, avec Ni correspondant au registre stockant les délais entre appels compris entre Ati et Ati+1 (plage PE1). Si ce n'est pas le cas, et en supposant que le calcul du temps dans les machines est précis, le fichier FI a été modifié. -18 Selon une illustration particulière, le nombre moyen d'appels au service logiciel en un mois est de 1 million, soit un appel toutes les 2,6 5 secondes. Si on fait une estimation basse, par exemple que le nombre d'appels est de 100.000 par mois, on a un appel toutes les 26 secondes. On fait alors le découpage indiqué dans le tableau 1, par tranche de durées d'écart At (durée variable entre les At), en indiquant à chaque fois une erreur minimale et une erreur maximale sur la durée d'écart At par plage PE1. 10 Tableau 1 - Pas et erreurs dans l'histogramme H1 Intervalles de Pas des Erreur min Erreur max Nombre de durées At plages PEI registres ls - 5mn ls 0,33% 100% 300 5mn2s 4 1Omn 2s 0,33% 0,67% 150 10mn5s - 30mn 5s 0,83% 0,28% 240 30mnO10s 10s 0,56% 0,28% 180 60mn lhOmn20s + 2h 20s 0,28% 0,56% 180 2hOmn30s + 4h 30s 0,21% 0,42% 240 4hlmn - 6h Imn 0,28% 0,42% 120 6h2mn 4 8h 2mn 0,42% 0,56% 60 8h4mn 4 12h 4mn 0,56% 0,84% 60 12h 4 17h54mn 6mn 0,56% 0,84% 60 18h - 23h50mn 1Omn 0,70% 0,93% 36 1 j - 1j23h45mn 15mn 0,52% 1,04% 96 2j 4 4j23h30mn 30mn 0,42% 1,04% 96 4j + 8j23h 1 h 0,42% 1,04% 96 8j - 15j2h 2h 0,42% 1,04% 96 16j. Imois 4h 0,42% 1,04% 96 Le nombre total de registres pour l'histogramme H1 vaut donc 2106, soit un espace mémoire 32 bits. de 8424 octets en stockant les registres sur De la même manière, si on découpe les jours du mois en heures pour l'histogramme H2, on obtient un nombre de registres de 744, soit 2976 20 octets en stockant les registres sur 32 bits. -19 Par souci de confidentialité, on crypte par exemple ces informations par paquets de 8 mots (soit 32 octets). -20 REVENDICATIONS 1. Dispositif de comptabilisation temporelle (1) d'événements, comprenant: - un module d'entrée en temps réel (11) d'occurrences d'événements physiques, - un module d'accès (12) à au moins une horloge (10), prévu pour obtenir un temps courant à chaque entrée d'une desdites occurrences, 10 - et un module d'enregistrement (15) dans au moins un fichier de comptabilisation (F1-F3), d'informations relatives aux dites occurrences et aux temps courants correspondants, lesdites informations autorisant une reconstitution temporelle au moins partielle desdites occurrences, caractérisé en ce que ledit dispositif de comptabilisation (1) comprend aussi un module de traitement synthétique (13) desdites occurrences et desdits temps courants, prévu pour produire des résultats condensés (H1, H2), et en ce que le module d'enregistrement (15) est prévu pour enregistrer lesdits résultats condensés (H1, H2) dans des structures de 20 données prédéfinies et de tailles préfixées dudit fichier de comptabilisation (F1-F3), de façon à permettre de maintenir constante la taille dudit fichier (F1-F3) lors des enregistrements successifs desdites informations. 2. Dispositif de comptabilisation temporelle (1) selon la 25 revendication 1, caractérisé en ce que le module de traitement synthétique (13) est prévu pour produire au moins deux types de résultats distincts (H1, H2), au moins un desdits types de résultats comprenant des redondances par rapport aux autres types de résultats, de façon à permettre des contrôles de cohérence desdits résultats (H1, H2). 30 3. Dispositif de comptabilisation temporelle (1) selon la revendication 2, caractérisé en ce que le module de traitement synthétique -21 (13) est prévu pour que lesdits types de résultats (HI, H2) fournissent des informations complémentaires. 4. Dispositif de comptabilisation temporelle (1) selon la 5 revendication 3, caractérisé en ce que lesdits types de résultats comprennent: - un premier type de résultats (HI) consistant en des nombres (Ni) desdites occurrences par plages (PEi) de durées d'écarts (At) entre deux desdites occurrences consécutives - et un deuxième type de résultats (H2) consistant en des nombres (N'j) desdites occurrences par plages temporelles consécutives (PTj) d'une période déterminée (P). 5. Dispositif de comptabilisation temporelle (1) selon la 15 revendication 4, caractérisé en ce que lesdites plages (PEi) de durées d'écarts du premier type de résultats (HI) ont des amplitudes croissant non strictement avec lesdites durées (At). 6. Dispositif de comptabilisation temporelle (1) selon l'une 20 quelconque des revendications précédentes, caractérisé en ce que lesdits événements physiques comprennent des appels à un logiciel situé sur une machine source par des appareils aptes à communiquer avec ladite machine. 7. Dispositif de comptabilisation temporelle (1) selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdits événements physiques comprennent des appels téléphoniques. 8. Dispositif de comptabilisation temporelle (1) selon l'une 30 quelconque des revendications précédentes, caractérisé en ce que lesdits événements physiques comprennent des manoeuvres prédéfinies dans un véhicule automobile. -22 9. Dispositif de comptabilisation temporelle (1) selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdits événements physiques comprennent des utilisations de fonctionnalités 5 informatiques disponibles sur une machine et susceptibles de subir des dysfonctionnements par suite de problèmes techniques. 10. Procédé de comptabilisation temporelle d'événements, dans lequel on repère en temps réel des occurrences d'événements physiques, on 10 accède à au moins une horloge (10) pour obtenir un temps courant de chacune desdites occurrences et on enregistre dans au moins un fichier de comptabilisation (FI-F3) des informations relatives aux dites occurrences et aux temps courants correspondants, lesdites informations autorisant une reconstitution temporelle au moins partielle desdites occurrences, 15 caractérisé en ce qu'on effectue automatiquement un traitement synthétique desdites occurrences et desdits temps courants, de façon à produire des résultats condensés (HI, H2) et en ce qu'on enregistre lesdites informations sous forme desdits résultats condensés (HI, H2), dans des 20 structures de données prédéfinies et de tailles préfixées dudit fichier de comptabilisation (F1-F3), de façon à permettre de maintenir constante la taille dudit fichier (F1-F3) lors des enregistrements successifs desdites informations, ledit procédé étant préférentiellement mis en oeuvre au moyen d'un dispositif de comptabilisation (1) conforme à l'une quelconque des revendications 1 à 9. 11. Dispositif d'analyse temporelle (2) d'événements à partir d'au 30 moins un fichier de comptabilisation (F1-F3) obtenu au moyen d'un dispositif de comptabilisation (1) conforme à la revendication 2 et à l'une quelconque des revendications 2 à 9, comprenant: -23 - un module d'extraction (21) des résultats (HI, H2) enregistrés dans ledit fichier (FI-F3), - un module de vérification de cohérences (22) des résultats respectivement desdits types de résultats (HI, H2), - et un module de production (23) d'un signal d'avertissement (S) à l'intention d'un utilisateur en cas d'incohérence desdits résultats (HI, H2). 12. Dispositif d'analyse temporelle (2) selon la revendication 11, 10 caractérisé en ce que ledit fichier de comptabilisation (F1-F3) étant obtenu au moyen d'un dispositif de comptabilisation (1) conforme à la revendication 3 et à l'une quelconque des revendications 3 à 9, ledit dispositif d'analyse temporelle (2) comprend aussi: - un module d'entrée (24) de requêtes d'un utilisateur, lesdites 15 requêtes portant sur des renseignements temporels concernant les occurrences desdits événements, un module de traitement combiné (25) desdits types de résultats (HI, H2), prévu pour produire lesdits renseignements temporels en fonction desdites informations enregistrées, - et un module de présentation (26) desdits renseignements temporels audit utilisateur. 13. Procédé d'analyse temporelle d'événements à partir d'au moins un fichier de comptabilisation (FI-F3) obtenu au moyen d'un dispositif 25 de comptabilisation (1) conforme à la revendication 2 et à l'une quelconque des revendications 2 à 9, dans lequel: - on extrait des résultats (HI, H2) enregistrés dans ledit fichier (F1-F3), - on vérifie automatiquement les cohérences des résultats 30 respectivement desdits types de résultats (HI, H2), - et on produit un signal d'avertissement (S) à l'intention d'un utilisateur en cas d'incohérence desdits résultats (HI, H2), -24 ledit procédé étant préférentiellement mis en oeuvre au moyen d'un dispositif d'analyse temporelle (2) conforme à l'une des revendications 11 ou 12. 14. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 10 ou 13 lorsque ledit programme est exécuté sur un ordinateur.