« Systèmes et procédés pour commander sélectivement et comptabiliser l'utilisation effective de programmes tels que des progiciels sur des postes informatiques"Systems and methods for selectively controlling and accounting for the actual use of programs such as software packages on computer workstations
La présente invention concerne d'une façon générale des systèmes et procédés permettant de contrôler l'exécution sélective de programmes, en particulier de logiciels applicatifs, dans des systèmes informatiques tels que des ordinateurs. Arrière-plan de l'inventionThe present invention relates generally to systems and methods for controlling the selective execution of programs, particularly application software, in computer systems such as computers. Invention background
Il existe à l'heure actuelle différentes catégories de logiciels applicatifs pouvant être utilisés dans des systèmes informatiques tels que des ordinateurs personnels (PC).There are currently different categories of application software that can be used in computer systems such as personal computers (PCs).
Classiquement, on achète auprès d'un revendeur une licence d'une application, moyennant un prix forfaitaire, pour obtenir un support physique (en général un CD-ROM) qui permet d'installer le logiciel sur l'ordinateur de l'utilisateur. En variante, toujours pour un prix forfaitaire, on peut obtenir l'application par téléchargement.Conventionally, a license of an application is purchased from a reseller, for a fixed price, to obtain a physical medium (generally a CD-ROM) which makes it possible to install the software on the user's computer. Alternatively, still for a fixed price, the application can be downloaded.
D'autres applications sont des « sharewares » distribués gratuitement mais le plus souvent bridés ou utilisables jusqu'à une date donnée, ceci afin d'inciter l'utilisateur à verser une contribution, en général modeste, à l'auteur pour disposer d'une version débridée ou pour pouvoir utiliser le logiciel au delà de la date limite.Other applications are “sharewares” distributed free of charge but most often restrained or usable until a given date, this in order to encourage the user to pay a contribution, generally modest, to the author to have an unbridled version or to be able to use the software beyond the deadline.
Enfin les applications entièrement gratuites ou « freewares » permettent une utilisation entièrement libre et sans limitation de durée.Finally, completely free applications or “freewares” allow completely free use with no time limit.
Dans le cas d'applications classiques, parfois onéreuses, il peut arriver que l'utilisateur ait un besoin effectif du logiciel hors de proportion avec son prix. Il peut arriver aussi, notamment pour des logiciels ludiques ou culturels, que l'intérêt de l'utilisateur pour le logiciel dont il a acquis la licence soit limité ou diminue au fil du temps, de sorte qu'il a le sentiment d'avoir payé un prix élevé pour ce qu'il a obtenu. Résumé de l'inventionIn the case of conventional applications, sometimes expensive, it may happen that the user has an actual need for the software out of proportion to its price. It can also happen, especially for fun or cultural software, that the user's interest in the software for which he has acquired the license is limited or decreases over time, so that he has the feeling of having paid a high price for what he got. Summary of the invention
La présente invention vise à pallier ces limitations de l'état de la technique et à proposer des systèmes et procédés permettant à un utilisateur de ne payer qu'une
juste compensation pour l'utilisation d'un logiciel applicatif associé à ces systèmes et procédés, ou d'un ensemble de tels logiciels applicatifs.The present invention aims to overcome these limitations of the state of the art and to provide systems and methods allowing a user to pay only one fair compensation for the use of application software associated with these systems and processes, or a set of such application software.
Plus précisément, la présente invention vise à permettre une comptabilisation de l'utilisation de logiciels tels que des logiciels du commerce (notamment des traitements de texte, tableurs, logiciels de traitement d'images, jeux vidéo, etc.), en particulier pour assurer une rémunération des titulaires des droitsMore specifically, the present invention aims to allow accounting for the use of software such as commercial software (in particular word processors, spreadsheets, image processing software, video games, etc.), in particular for ensuring remuneration of rights holders
(éditeur, auteur, etc.) en fonction notamment du temps d'utilisation.(publisher, author, etc.) depending in particular on the time of use.
Un autre objet de la présente invention est d'atteindre cet objectif en satisfaisant de préférence aux objectifs secondaires suivants : - la mise en œuvre de l'invention doit être simple, avec peu de contraintes pour l'utilisateur,Another object of the present invention is to achieve this objective by preferably satisfying the following secondary objectives: the implementation of the invention must be simple, with few constraints for the user,
- l'installation par l'utilisateur doit également être simple, en évitant de perturber son environnement de travail habituel,- installation by the user must also be simple, avoiding disturbing his usual working environment,
- l'invention doit pouvoir opérer avec des logiciels tiers quelconques ou au contraire seulement avec des logiciels adhérant aux procédés et systèmes de l'invention,- the invention must be able to operate with any third party software or, on the contrary, only with software adhering to the methods and systems of the invention,
- l'invention doit permettre de spécifier, pour un logiciel tiers donné et un utilisateur donné, certaines conditions d'utilisation (par exemple utilisation limitée ou illimitée, utilisation temporairement gratuite, offres promotionnelles temporaires, etc.)- the invention must make it possible to specify, for a given third-party software and a given user, certain conditions of use (for example limited or unlimited use, temporarily free use, temporary promotional offers, etc.)
La présente invention propose à cet effet selon un premier aspect un procédé pour commander l'exécution sélective d'un programme dans un poste informatique, caractérisé en ce qu'il est mis en oeuvre par un jeu d'instructions associé au programme et qu'il comprend les étapes suivantes : - détection d'une exécution du programme,The present invention proposes for this purpose according to a first aspect a method for controlling the selective execution of a program in a computer station, characterized in that it is implemented by a set of instructions associated with the program and that it includes the following stages: - detection of a program execution,
- vérification, dans une mémoire, de la valeur d'un compteur de réserve d'utilisation du programme et le cas échéant d'autres programmes,- verification, in a memory, of the value of a counter for reserve use of the program and, where appropriate, of other programs,
- en fonction da valeur du compteur, autorisation ou non de l'exécution programme, et
- pendant l'utilisation du programme, modification périodique dans la mémoire de la valeur du compteur de réserve d'utilisation pour abaisser ladite réserve.- depending on the value of the counter, whether or not program execution is authorized, and - during the use of the program, periodic modification in the memory of the value of the usage reserve counter to lower said reserve.
Certains aspects préférés mais non limitatifs du procédé tel que défini ci- dessus sont les suivants :Some preferred but non-limiting aspects of the process as defined above are the following:
- le compteur de réserve d'utilisation est commun à un ensemble de programmes gérés par le procédé.the usage reserve counter is common to a set of programs managed by the method.
- le procédé comprend en outre l'étape consistant, pendant l'utilisation d'un programme donné, à modifier périodiquement dans une mémoire la valeur d'un compteur spécifique d'utilisation dudit programme donné.the method further comprises the step consisting, during the use of a given program, of periodically modifying in a memory the value of a specific counter for using said given program.
- le procédé comprend en outre les étapes suivantes :the method further comprises the following steps:
* connexion du poste informatique avec un serveur distant,* connection of the computer station with a remote server,
* recharge du compteur de réserve d'utilisation mémorisé dans le poste informatique en échange d'une compensation. - au cours de la connexion du poste informatique avec le serveur distant, le procédé comprend en outre les étapes suivantes :* recharge of the usage reserve counter stored in the computer station in exchange for compensation. - during the connection of the computer station with the remote server, the method further comprises the following steps:
* transmission par le poste informatique au serveur des valeurs des différents compteurs spécifiques d'utilisation, et* transmission by the computer station to the server of the values of the various specific use counters, and
* intégration de ces valeurs dans un compte client associé à un utilisateur du poste informatique.* integration of these values in a customer account associated with a computer user.
- le procédé comprend en outre les étapes suivantes :the method further comprises the following steps:
* après chaque modification de la valeur du compteur de réserve d'utilisation pendant l'exécution d'un programme donné, comparaison de la valeur courante de ce compteur à un seuil, et * dans le cas où la valeur courante a franchi ce seuil, interruption de l'exécution du programme donné.* after each modification of the value of the usage reserve counter during the execution of a given program, comparison of the current value of this counter with a threshold, and * in the case where the current value has crossed this threshold, interruption of execution of the given program.
- l'interruption de l'exécution comprend l'affichage sur un écran du poste informatique d'un message invitant l'utilisateur à quitter le programme.- the interruption of the execution includes the display on a screen of the computer station of a message inviting the user to leave the program.
- l'interruption de l'exécution comprend la génération d'une instruction forçant le programme à quitter.
Selon un deuxième aspect, la présente invention propose un procédé pour comptabiliser l'utilisation d'un programme dans un poste informatique, caractérisé en ce qu'il comprend les étapes suivantes :- the interruption of the execution includes the generation of an instruction forcing the program to quit. According to a second aspect, the present invention provides a method for accounting for the use of a program in a computer station, characterized in that it comprises the following steps:
* lancement du programme, * de façon périodique au cours de l'exécution du programme, modification dans une mémoire de l'état d'un compteur d'utilisation associé audit programme et le cas échéant à d'autres programmes,* launching of the program, * periodically during the execution of the program, modification in a memory of the state of a counter of use associated with said program and if necessary with other programs,
* au plus tard à l'issue d'une utilisation quantitative donnée, intégration des données d'utilisation effective dans un outil de comptabilisation. Certains aspects préférés mais non limitatifs du procédé tel que défini ci- dessus sont les suivants :* at the latest at the end of a given quantitative use, integration of the actual use data into an accounting tool. Some preferred but non-limiting aspects of the process as defined above are the following:
- l'étape d'intégration est réalisée à l'aide d'une connexion du système informatique avec un serveur distant.- the integration step is carried out using a connection of the computer system with a remote server.
- il est prévu un compteur d'utilisation pour chaque programme géré par le procédé.- A usage counter is provided for each program managed by the process.
- le compteur d'utilisation est commun à un ensemble de programmes gérés par le procédé.the usage counter is common to a set of programs managed by the method.
- le procédé comprend également, pendant chaque utilisation d'un programme, une modification périodique dans la mémoire de la valeur d'un compteur de réserve d'utilisation représentant une réserve d'utilisation du programme et le cas échéant d'autres programmes, pour abaisser ladite réserve, et comprend en outre, avant l'étape de lancement du programme, les étapes suivantes :the method also comprises, during each use of a program, a periodic modification in the memory of the value of a usage reserve counter representing a usage reserve of the program and if necessary other programs, to lower said reserve, and further includes, before the program launch stage, the following stages:
* vérification de la valeur du compteur de réserve, et* verification of the value of the reserve counter, and
* en fonction da valeur dudit compteur de réserve, autorisation ou non du lancement du programme.* depending on the value of said reserve counter, whether or not the program is launched.
- le procédé comprend en outre, lors de la connexion du poste informatique avec le serveur distant, une étape de recharge du compteur de réserve d'utilisation mémorisé dans le poste informatique en échange d'une compensation.- The method further comprises, during the connection of the computer station with the remote server, a step of recharging the usage reserve counter stored in the computer station in exchange for compensation.
- le procédé comprend en outre les étapes suivantes :
* après chaque modification de la valeur du compteur de réserve d'utilisation pendant l'exécution d'un programme donné, comparaison de la valeur courante de ce compteur à un seuil, etthe method further comprises the following steps: * after each modification of the value of the usage reserve counter during the execution of a given program, comparison of the current value of this counter with a threshold, and
* dans le cas où la valeur courante a franchi ce seuil, interruption de l'exécution du programme donné.* if the current value has crossed this threshold, interruption of the execution of the given program.
- l'interruption de l'exécution comprend l'affichage sur un écran du poste informatique d'un message invitant l'utilisateur à quitter le programme.- the interruption of the execution includes the display on a screen of the computer station of a message inviting the user to leave the program.
- l'interruption de l'exécution comprend la génération d'une instruction forçant le programme à quitter. Selon un troisième aspect, l'invention propose un système pour commander l'exécution sélective d'un programme dans un poste informatique, le système étant caractérisé en ce qu'il comprend :- the interruption of the execution includes the generation of an instruction forcing the program to quit. According to a third aspect, the invention proposes a system for controlling the selective execution of a program in a computer station, the system being characterized in that it comprises:
- un moyen de détection d'une instruction de lancement du programme,a means of detecting an instruction to launch the program,
- un moyen de lecture dans une mémoire de la valeur d'un compteur de réserve d'utilisation du programme,a means of reading from a memory the value of a counter for reserve use of the program,
- un moyen comparateur apte à comparer la valeur du compteur avec une limite, eta comparator means able to compare the value of the counter with a limit, and
- un moyen d' autorisation/interdiction apte à sélectivement autoriser ou non le lancement du programme, et - un moyen de comptage apte à comptabiliser une utilisation quantitative du programme, et- an authorization / prohibition means capable of selectively authorizing or not the launching of the program, and - a counting means capable of accounting for a quantitative use of the program, and
- un moyen d'écriture dans ladite mémoire vive, sensible au moyen de comptage pour modifier périodiquement la valeur du compteur de réserve d'utilisation pour abaisser ladite réserve. Certains aspects préférés mais non limitatifs du système tel que défini ci- dessus sont les suivants :a means of writing into said random access memory, sensitive to the counting means for periodically modifying the value of the usage reserve counter to lower said reserve. Some preferred but non-limiting aspects of the system as defined above are the following:
- le moyen de comptage est commun à un ensemble de programmes gérés par le système.- the counting means is common to a set of programs managed by the system.
- la mémoire contient en outre la valeur d'un compteur spécifique d'utilisation pour chaque programme, et le moyen d'écriture est également apte à
modifier périodiquement la valeur d'un compteur spécifique en réponse à la comptabilisation de l'utilisation du programme associé.the memory also contains the value of a specific usage counter for each program, and the writing means is also capable of periodically modify the value of a specific counter in response to accounting for the use of the associated program.
- le système comprend en outre :- the system also includes:
* un moyen apte, après chaque écriture d'une valeur modifiée du compteur de réserve d'utilisation, à comparer de la valeur courante de ce compteur à un seuil, eta means capable, after each writing of a modified value of the usage reserve counter, to compare the current value of this counter with a threshold, and
* un moyen d'interruption apte à provoquer l'interruption de l'exécution du programme donné dans le cas où ladite valeur courante a franchi ce seuil. - le moyen d'interruption de l'exécution comprend un moyen pour afficher sur un écran du poste informatique un message invitant l'utilisateur à quitter le programme.* an interruption means capable of causing the interruption of the execution of the given program in the event that said current value has crossed this threshold. the means for interrupting the execution comprises a means for displaying on a screen of the computer station a message inviting the user to leave the program.
- le moyen d'interruption de l'exécution comprend un moyen pour engendrer une instruction forçant le programme à quitter. Selon un quatrième aspect, la présente invention propose un équipement pour réaliser une compensation de l'utilisation sélective d'un programme, caractérisé en ce qu'il comprend un poste informatique comportant un système pour commander l'exécution sélective du programme, ce système comprenant :the means for interrupting the execution comprises means for generating an instruction forcing the program to exit. According to a fourth aspect, the present invention provides equipment for compensating for the selective use of a program, characterized in that it comprises a computer station comprising a system for controlling the selective execution of the program, this system comprising :
- un moyen de détection d'une instruction de lancement du programme, - un moyen de lecture dans une mémoire de la valeur d'un compteur de réserve d'utilisation du programme,a means of detecting an instruction to launch the program, a means of reading from a memory the value of a reserve counter for using the program,
- un moyen comparateur apte à comparer la valeur du compteur avec une limite, eta comparator means able to compare the value of the counter with a limit, and
- un moyen d'autorisation/interdiction apte à sélectivement autoriser ou non le lancement du programme, eta means of authorization / prohibition capable of selectively authorizing or not the launching of the program, and
- un moyen de comptage apte à comptabiliser l'utilisation quantitative du programme, et- a counting means capable of accounting for the quantitative use of the program, and
- un moyen d'écriture dans ladite mémoire vive, sensible au moyen de comptage pour modifier périodiquement la valeur du compteur de réserve d'utilisation pour abaisser ladite réserve,
et en ce que l'équipement comprend en outre un serveur distant relié au poste informatique par une connexion, et des moyens apte à provoquer à partir du serveur la recharge du compteur de réserve d'utilisation mémorisé dans le poste informatique en échange d'une compensation traitée par le serveur. De façon avantageuse, la mémoire du système de commande d'exécution sélective contient en outre la valeur d'un compteur spécifique d'utilisation pour chaque programme, tandis que le moyen d'écriture dudit système est également apte à modifier périodiquement la valeur d'un compteur spécifique en réponse à la comptabilisation de l'utilisation quantitative du programme associé, qu'il est prévu dans le poste informatique un moyen pour transmettre au serveur des valeurs des différents compteurs spécifiques d'utilisation, et qu'il est prévu dans le serveur un moyen d'intégration de ces valeurs dans un compte client associé à un utilisateur du poste informatique.a means of writing into said random access memory, sensitive to the counting means for periodically modifying the value of the usage reserve counter to lower said reserve, and in that the equipment also comprises a remote server connected to the computer station by a connection, and means capable of causing the server to recharge the usage reserve counter stored in the computer station in exchange for a compensation processed by the server. Advantageously, the memory of the selective execution control system also contains the value of a specific usage counter for each program, while the writing means of said system is also capable of periodically modifying the value of a specific counter in response to the accounting of the quantitative use of the associated program, that there is provided in the computer station means for transmitting to the server values of the various specific use counters, and that it is provided in the server means of integrating these values into a client account associated with a computer station user.
Enfin selon un cinquième aspect, l'invention propose un équipement pour comptabiliser l'utilisation d'un programme dans un poste informatique, caractérisé en ce qu'il comprend :Finally according to a fifth aspect, the invention provides equipment for accounting for the use of a program in a computer station, characterized in that it comprises:
- un moyen pour détecter l'exécution du programme,- a means for detecting the execution of the program,
- une mémoire contenant un compteur d'utilisation associé audit programme, - un moyen d'écriture sensible au moyen de détection d'exécution pour modifier de façon périodique l'état du compteur d'utilisation associé audit programmes,a memory containing a usage counter associated with said program, a writing means sensitive to the execution detection means for periodically modifying the state of the usage counter associated with said programs,
- un moyen de comptabilisation apte, au plus tard à l'issue d'une utilisation quantitative donnée, à intégrer des données d'utilisation effective du programme. Certains aspects préférés mais non limitatifs de cet équipement sont les suivants :- a means of accounting capable, at the latest at the end of a given quantitative use, of integrating data of actual use of the program. Some preferred but non-limiting aspects of this equipment are:
- l'équipement comprend un serveur distant relié au poste informatique, et le moyen de comptabilisation est situé dans le serveur distant.- The equipment includes a remote server connected to the computer station, and the accounting means is located in the remote server.
- ladite mémoire contient également des compteurs d'utilisation spécifiques pour une pluralité de programmes exécutables sur le poste informatique.
- la mémoire contient un compteur d'utilisation commun à une pluralité de programmes exécutables sur le poste informatique.- Said memory also contains specific use counters for a plurality of programs executable on the computer station. - The memory contains a usage counter common to a plurality of programs executable on the computer station.
-la mémoire contient en outre la valeur d'un compteur de réserve d'utilisation représentant une réserve d'utilisation du programme et le cas échéant d'autres programmes, et l'équipement comprend en outre :the memory also contains the value of a usage reserve counter representing a usage reserve of the program and, where appropriate, other programs, and the equipment further comprises:
* un deuxième moyen d'écriture pour modifier périodiquement dans la mémoire la valeur du compteur de réserve de manière à abaisser ladite réserve,a second writing means for periodically modifying in the memory the value of the reserve counter so as to lower said reserve,
* un moyen comparateur pour comparer la valeur du compteur de réserve à une valeur limite en réponse à une demande de lancement du programme, et* a comparator means for comparing the value of the reserve counter with a limit value in response to a request to start the program, and
* un moyen d'interdiction sensible au moyen comparateur pour sélectivement autoriser ou interdire le lancement du programme.* a means of prohibition sensitive to the comparator means for selectively authorizing or prohibiting the launching of the program.
- il est prévu dans le serveur distant un moyen pour engendrer à destination du poste informatique une instruction de recharge du compteur de réserve d'utilisation mémorisé dans le poste informatique en réponse à la détection d'une compensation.- Means are provided in the remote server for generating at the computer station an instruction to reload the usage reserve counter stored in the computer station in response to the detection of compensation.
- l'équipement comprend en outre un deuxième moyen comparateur apte, après chaque modification de la valeur du compteur de réserve d'utilisation pendant l'exécution d'un programme donné, à comparer la valeur courante du compteur de réserve d'utilisation à un valeur limite, et un moyen d'interruption sensible au deuxième moyen comparateur pour provoquer l'interruption de l'exécution du programme donné lorsque la valeur courante du compteur de réserve d'utilisation a franchi la valeur limite. - le moyen d'interruption de l'exécution comprend un moyen pour afficher sur un écran du poste informatique un message invitant l'utilisateur à quitter le programme.the equipment further comprises a second comparator means capable, after each modification of the value of the usage reserve counter during the execution of a given program, to compare the current value of the usage reserve counter with a limit value, and an interruption means sensitive to the second comparator means for causing the interruption of the execution of the given program when the current value of the usage reserve counter has crossed the limit value. the means for interrupting the execution comprises a means for displaying on a screen of the computer station a message inviting the user to leave the program.
- le moyen d'interruption de l'exécution comprend un moyen pour engendrer une instruction forçant le programme à quitter.the means for interrupting the execution comprises means for generating an instruction forcing the program to exit.
Brève description des dessins
D'autres aspects, buts et avantages de la présente invention apparaîtront mieux à la lecture de la description détaillée suivante d'une forme de réalisation préférée de celle-ci, donnée à titre d'exemple non limitatif et faite en référence aux dessins annexés, sur lesquels :Brief description of the drawings Other aspects, aims and advantages of the present invention will appear better on reading the following detailed description of a preferred embodiment thereof, given by way of non-limiting example and made with reference to the accompanying drawings, on which ones :
La figure 1 illustre schématiquement un exemple d'architecture en réseau pour la mise en œuvre de l'invention,FIG. 1 schematically illustrates an example of network architecture for the implementation of the invention,
La figure 2 illustre schématiquement les fonctionnalités essentielles de l'invention, La figure 3 est un schéma bloc illustrant les différents composants mis en jeu dans des systèmes et procédés de l'invention,FIG. 2 schematically illustrates the essential functionalities of the invention, FIG. 3 is a block diagram illustrating the various components involved in systems and methods of the invention,
La figure 4 illustre une architecture en réseau plus détaillée pour la mise en œuvre de l'invention,FIG. 4 illustrates a more detailed network architecture for implementing the invention,
La figure 5 est un logigramme illustrant les principales étapes d'une transaction entre un poste informatique et un serveur de temps d'utilisation selon l'invention,FIG. 5 is a flow diagram illustrating the main steps of a transaction between a computer station and a time of use server according to the invention,
La figure 6 illustre un exemple d'interface utilisateur visuelle intervenant dans le logigramme de la figure 5, etFIG. 6 illustrates an example of a visual user interface involved in the flow diagram of FIG. 5, and
La figure 7 est un logigramme illustrant les principales étapes d'un agent logiciel installé dans le poste informatique en liaison avec un programme.FIG. 7 is a flow diagram illustrating the main steps of a software agent installed in the computer station in connection with a program.
Description détaillée d'un mode de réalisation préféréDetailed description of a preferred embodiment
Présentation généraleGeneral presentation
On notera à titre préliminaire que, d'une figure à l'autre, des éléments ou parties identiques ou similaires sont désignés dans la mesure du possible par les mêmes signes de référence, et ne seront pas décrits à nouveau à chaque fois.It will be noted at the outset that, from one figure to another, identical or similar elements or parts are designated as far as possible by the same reference signs, and will not be described again each time.
On a représenté sur la figure 1 des dessins une architecture classique comprenant :FIG. 1 of the drawings shows a conventional architecture comprising:
- un poste client PC à disposition d'un utilisateur,
- un réseau RE notamment de type TCP/IP (LAN, WAN, Internet, Intranet, etc.)- a PC client station available to a user, - a RE network, in particular of the TCP / IP type (LAN, WAN, Internet, Intranet, etc.)
- un serveur SV.- an SV server.
Le poste client PC et le serveur SV sont capables de communiquer ici via le réseau par le protocole TCP/IP habituel.The PC client station and the SV server are able to communicate here via the network using the usual TCP / IP protocol.
La figure 2 est un schéma illustrant les fonctionnalités principales de la présente invention.Figure 2 is a diagram illustrating the main features of the present invention.
Dans la pratique, ce schéma peut être complété en amont par une phase d'inscription des utilisateurs (Comptes Utilisateurs) dans le système à des fins de facturation, de surveillance (sécurité, statistiques), etc.In practice, this scheme can be completed upstream by a user registration phase (User Accounts) in the system for billing, monitoring (security, statistics), etc.
Le système et le procédé ont pour finalité première de fournir un service à des utilisateurs permettant le suivi de leur consommation en termes d'utilisation, sur leur poste client PC, de logiciels tiers associés à ce service, l'établissement d'une compensation (typiquement une facturation du service) pour cette consommation et le cas échéant un suivi commercial des utilisateurs (promotions, heures gratuites, etc.)The primary purpose of the system and method is to provide a service to users allowing the monitoring of their consumption in terms of use, on their PC client workstation, of third-party software associated with this service, the establishment of compensation ( typically billing for the service) for this consumption and, where appropriate, commercial monitoring of users (promotions, free hours, etc.)
La souscription à ce service (mettant en œuvre une inscription par les utilisateurs et une délivrance de droit d'utilisation et d'accès au service, avec bien entendu possibilité de désinscription/résiliation) provoque, de façon en soi classique, la mise en place dans le serveur SV d'un compte client. Ce compte peut contenir un acompte sur lequel sera débité et facturé le temps de logiciels consommées, les différentes informations nécessaires (identification, suivi d'utilisation).Subscribing to this service (implementing registration by users and issuing the right of use and access to the service, with of course the possibility of unsubscribing / termination) causes, in a conventional manner, the implementation in the SV server of a client account. This account can contain a deposit on which will be debited and billed the time of software consumed, the various necessary information (identification, monitoring of use).
Le dialogue entre l'utilisateur du poste PC et le serveur s'effectue dans le présent exemple à l'aide : - côté serveur SV, d'un logiciel serveur constitué pour l'essentiel d'un siteThe dialogue between the user of the PC station and the server is carried out in this example using: - on the SV server side, server software consisting essentially of a site
Internet ou Intranet, d'un programme de connexion serveur et d'un programme de comptabilisation de l'utilisation et de recharge ;Internet or Intranet, a server connection program and a usage accounting and recharge program;
- côté poste client PC, d'un logiciel spécifique, dit logiciel client, en association avec un ou plusieurs « modules insérés » ou agents logiciels comme on le verra en détail plus loin.
On observera à cet égard que le système et le procédé selon l'invention peuvent être mis en œuvre dans des contextes variés, et par exemple aussi bien pour la mise à disposition de logiciels tels que des jeux vidéo à destination du grand public que pour la mise à disposition de logiciels professionnels, tels que des logiciels de gestion, à destination d'une collectivité ou d'une entreprise.- on the PC client station side, specific software, known as client software, in association with one or more "inserted modules" or software agents as will be seen in detail below. It will be observed in this regard that the system and the method according to the invention can be implemented in various contexts, and for example both for the provision of software such as video games intended for the general public and for the provision of professional software, such as management software, intended for a community or a business.
Description du mécanisme de distribution d'heures d'utilisationDescription of the mechanism for distributing hours of use
Ce mécanisme comprend les étapes principales suivantes : - création d'un compte utilisateur (permettra d'identifier l'utilisateur), comprenant une phase d'inscription de l'utilisateur, par exemple par un formulaire en ligne, et une phase de validation et acceptation de l'inscription ;This mechanism includes the following main steps: - creation of a user account (will identify the user), including a user registration phase, for example by an online form, and a validation phase and acceptance of registration;
- fourniture à l'utilisateur d'un logiciel client, par exemple par téléchargement, envoi par courrier d'un support physique, ainsi que d'un nom d'utilisateur (« login ») et d'un mot de passe associé ;- providing the user with client software, for example by downloading, sending by mail of a physical medium, as well as a user name (“login”) and an associated password;
- exécution à l'initiative de l'utilisateur d'une transaction entre le logiciel client et le serveur SV, via le réseau RE, pour obtenir des droits temporels d'utilisation sur les logiciels tiers disponibles (réserve de temps d'utilisation) ; cette opération comporte de préférence une fonction de paiement sécurisé par carte de crédit ou autre, dont le montant est lié à la quantité de temps achetée (sachant qu'on peut prévoir également que l'utilisateur n'effectue un paiement qu'après consommation effective) ;- execution on the initiative of the user of a transaction between the client software and the server SV, via the network RE, in order to obtain temporal rights of use on the available third-party software (reserve of time of use); this operation preferably includes a secure payment function by credit card or other, the amount of which is linked to the amount of time purchased (knowing that it is also possible for the user to make a payment only after actual consumption );
- obtention par l'utilisateur, par téléchargement vers le poste client ou en variante par envoi d'un support physique, d'un ou plusieurs logiciels (typiquement des logiciels tiers) à utiliser qui l'intéressent, sachant que le serveur comporte avantageusement un mécanisme de présentation et de téléchargement les logiciels tiers disponibles :- obtaining by the user, by downloading to the client workstation or alternatively by sending a physical medium, one or more software (typically third-party software) to use which interests him, knowing that the server advantageously includes a presentation and download mechanism for third-party software available:
- installation par l'utilisateur du ou des logiciels tiers sur son poste client PC, de manière à pouvoir utiliser ceux-ci ; - pendant toute exécution d'un logiciel tiers, incrémentation ou décrémentation périodique (par exemple toutes les minutes) d'une donnée
d'horodatage, de manière à comptabiliser le temps d'utilisation effective et à la prélever sur la réserve de temps d'utilisation ; on notera ici qu'il est avantageusement prévu deux types de compteurs temporels, à savoir un compteur spécifiques à chaque logiciel utilisé (typiquement un compteur ascendant), et un compteur d'utilisation globale (typiquement un compteur descendant) ;- installation by the user of the third-party software or software on their PC client workstation, so that they can use them; - during any execution of third-party software, periodic incrementation or decrementation (for example every minute) of a data time stamping, so as to record the actual usage time and to take it from the usage time reserve; it will be noted here that two types of time counters are advantageously provided, namely a counter specific to each software used (typically an ascending counter), and a counter for overall use (typically a descending counter);
- lorsque l'intégralité de la réserve de temps d'utilisation a été consommée (valeur du compteur décrémentai égale à 0), les logiciels tiers ne peuvent plus être exécutés ; le logiciel client provoque alors l'affichage d'un message invitant l'utilisateur à établir une transaction entre le logiciel client et le serveur pour ré- approvisionner la réserve comme précédemment décrit ; cette transaction peut également, de façon avantageuse, être déclenchée par l'utilisateur à tout instant dès qu'il considère que sa réserve de temps est insuffisante.- when the entire time reserve has been consumed (value of the decremented counter equal to 0), third-party software can no longer be run; the client software then causes the display of a message inviting the user to establish a transaction between the client software and the server to replenish the reserve as previously described; this transaction can also, advantageously, be triggered by the user at any time as soon as he considers that his time reserve is insufficient.
- lors d'une transaction entre le poste client et le serveur, le logiciel client transmet au serveur le temps passé pour chaque logiciel tiers utilisé, temps qui a été mémorisé de façon protégée par le logiciel client et les modules insérés (voir plus loin la description de tels modules) ;- during a transaction between the client station and the server, the client software transmits to the server the time spent for each third-party software used, time which has been stored in a protected manner by the client software and the modules inserted (see below the description of such modules);
- à la suite de cette transmission, que le serveur n'accepte qu'après vérification du nom d'utilisateur et du mot de passe de l'utilisateur, le compte client tenu par le serveur est débité en fonction des temps consommés pour les différents logiciels tiers utilisés ; le serveur peut alors vérifier l'état du compte client et autoriser ou non un nouveau crédit de temps sur le logiciel client (rechargement de la réserve globale).- following this transmission, which the server accepts only after verification of the username and password of the user, the client account kept by the server is debited according to the time consumed for the various third party software used; the server can then check the status of the client account and authorize or not a new time credit on the client software (reload of the global reserve).
Au cours de telles transactions, le logiciel client rapporte à l'utilisateur, par une interface utilisateur appropriée, les différentes informations qu'il doit connaître (erreurs, nécessité d'approvisionner son acompte client - typiquement par une procédure de paiement sécurisé -, récupération d'une nouvelle réserve temporelle d'utilisation, etc.).During such transactions, the client software reports to the user, via an appropriate user interface, the various information that he must know (errors, need to fund his client deposit - typically by a secure payment procedure -, recovery a new time reserve for use, etc.).
Caractéristiques techniques du système
Comme on l'a déjà indiqué, les systèmes et procédés de la présente invention reposent de préférence sur une architecture client/serveur. Une simple connexion réseau notamment par protocole TCP/IP (que ce soit par réseau local, réseau global, Internet, Intranet) est suffisante pour assurer la communication entre le poste client PC et le serveur SV.Technical characteristics of the system As already indicated, the systems and methods of the present invention are preferably based on a client / server architecture. A simple network connection, in particular by TCP / IP protocol (whether by local network, global network, Internet, Intranet) is sufficient to ensure communication between the PC client station and the SV server.
L'intégration d'un logiciel tiers dans le système est réalisée par l'insertion d'un module ou agent logiciel (on parlera dans le suite de « module inséré ») dans le code exécutable du logiciel tiers, comme on le détaillera plus loin, sachant qu'une telle insertion ne nécessitera pas en général de disposer des codes sources du logiciel tiers en question. On prévoit ainsi autant de modules insérés que de logiciels tiers à gérer. L'insertion d'un tel module peut aussi, en variante, être réalisée directement lors de la création d'un logiciel tiers, notamment - pour faciliter la tâche des concepteurs - en proposant à ceux-ci des bibliothèques et sous-programmes ad-hoc.The integration of third-party software into the system is achieved by inserting a module or software agent (we will speak in the following of "inserted module") in the executable code of the third-party software, as will be detailed below. , knowing that such an insertion will not generally require having the source codes of the third-party software in question. As many modules are provided as there are third-party software to manage. The insertion of such a module can also, as a variant, be carried out directly during the creation of third-party software, in particular - to facilitate the task of the designers - by offering them libraries and ad- hoc.
Un module inséré associé à un logiciel tiers réalise un certain nombre d'actions dont les principales sont les suivantes :An inserted module associated with third-party software performs a certain number of actions, the main ones being as follows:
- aptitude à s'exécuter en même temps que le logiciel tiers,- ability to run at the same time as third-party software,
- aptitude à interdire l'exécution du logiciel tiers,- ability to prohibit the execution of third-party software,
- comptabilisation de données caractérisant une utilisation du logiciel tiers, et par exemple du temps d'utilisation du logiciel tiers, - envoi d'informations au serveur par le logiciel client, et en particulier des informations comptabilisant le temps passé sur le logiciel, etc.- accounting of data characterizing a use of the third-party software, and for example of the time of use of the third-party software, - sending of information to the server by the client software, and in particular of information accounting for the time spent on the software, etc.
Caractéristiques des différents éléments logicielsCharacteristics of the different software elements
Comme on l'a indiqué précédemment, le système et le procédé selon l'invention mettent enjeu trois processus logiciels à savoir :As indicated above, the system and the method according to the invention involve three software processes, namely:
- un processus logiciel PLI au niveau du serveur SV ;- a PLI software process at the SV server level;
- un processus logiciel PL2 (logiciel client) au niveau du poste client PC ;- a PL2 software process (client software) at the PC client station;
- un processus logiciel intégrable PL3 (module inséré) inséré dans chacun des logiciels tiers.
La figure 3 illustre les principales interactions entre ces processus, avec en particulier deux processus PL3 et PL3 ' respectivement associés à deux logiciels tiers « Logiciel Tiers 1 » et « Logiciel Tiers 2 ».- an integrable PL3 software process (module inserted) inserted in each of the third-party software. FIG. 3 illustrates the main interactions between these processes, with in particular two processes PL3 and PL3 'respectively associated with two third-party software “Third Party Software 1” and “Third Party Software 2”.
Les caractéristiques essentielles de ces différents processus sont les suivantes.The essential characteristics of these different processes are as follows.
Chaque module inséré PL3, PL3', etc. possède une fonction de compteur de temps spécifique apte à déterminer le temps passé par l'utilisateur sur le logiciel tiers concerné (ou d'autres données caractérisant l'utilisation), et une fonction d'accès à un espace protégé de données en vue de modifier le contenu d'un compteur global d'utilisation à mesure de cette utilisation s'effectue, et de modifier également le contenu d'un compteur spécifique d'utilisation propre au logiciel tiers concerné.Each module inserted PL3, PL3 ', etc. has a specific time counter function capable of determining the time spent by the user on the third-party software concerned (or other data characterizing the use), and a function for accessing a protected data space in order to modify the content of a global usage counter as this usage takes place, and also modify the content of a specific usage counter specific to the third party software concerned.
Le logiciel client PL2 est apte à être exécuté par le poste client PC de manière à autoriser l'utilisateur, par une interface utilisateur appropriée, à consulter le temps d'utilisation dont il dispose (valeur du compteur global). Le logiciel client PL2 est également apte à dialoguer avec les modules insérés PL3, PL3', etc. afin de recueillir les temps spécifiques d'utilisation de ceux-ci (compteurs de temps spécifiques). Enfin et surtout, le logiciel client PL2 permet à l'utilisateur de se connecter au système de distribution de temps géré par le serveur SV afin de permettre à ce dernier de récupérer les valeurs effectives des temps de consommation et d'attribuer une nouvelle réserve de temps d'utilisation au logiciel client PL2 (recharge du compteur global).The PL2 client software is capable of being executed by the PC client station so as to authorize the user, via an appropriate user interface, to consult the usage time available to him (value of the global counter). The PL2 client software is also able to communicate with the inserted modules PL3, PL3 ', etc. in order to collect the specific times of use of these (specific time counters). Last but not least, the PL2 client software allows the user to connect to the time distribution system managed by the SV server in order to allow the latter to retrieve the actual values of consumption times and to allocate a new reserve of time of use in the PL2 client software (recharging of the global counter).
Ainsi, comme on l'a déjà abordé, le système et le procédé de la présente invention mettent en jeu deux types de compteurs, à savoir un compteur dit « compteur global » contenant une valeur de réserve de temps autorisé fournie par le logiciel serveur, qui est décrémentée en réponse à des informations de consommation fournies par les différents modules insérés PL3, PL3' à mesure de l'utilisation des logiciels tiers respectifs. L'autre type de compteur, dit « compteur spécifique », est géré par chaque module inséré, s'incrémente par l'utilisation effective du logiciel tiers associé et est remis à zéro en réponse à un transfert de données via le logiciel client PL2 et vers le logiciel serveur PLI, par lequel la consommation effective de chaque logiciel tiers a été enregistrée dans le compte client du serveur SV.
On notera ici, comme on l'a déjà évoqué, que le comptage de temps peut être complété, ou remplacé par un comptage monétaire, de tels compteurs constituant alors une réserve de crédit financier pour l'utilisation des logiciels tiers.Thus, as already mentioned, the system and the method of the present invention involve two types of counters, namely a counter known as a “global counter” containing an authorized time reserve value supplied by the server software, which is decremented in response to consumption information provided by the various modules inserted PL3, PL3 'as the use of the respective third party software. The other type of counter, known as a “specific counter”, is managed by each module inserted, increments by the effective use of the associated third-party software and is reset to zero in response to a data transfer via the client software PL2 and to the PLI server software, by which the actual consumption of each third-party software was recorded in the client account of the SV server. It will be noted here, as already mentioned, that the time counting can be supplemented, or replaced by a monetary counting, such counters then constituting a financial credit reserve for the use of third-party software.
Le logiciel serveur PLI est une application serveur permettant la fourniture de réserves de temps d'utilisation aux postes clients des différents utilisateurs inscrits et la comptabilisation des temps d'utilisation des logiciels tiers par ces utilisateurs, en tenant à jour une base de données des comptes utilisateurs.The PLI server software is a server application allowing the supply of usage time reserves to the client workstations of the different registered users and the accounting of the usage times of third party software by these users, by updating an account database. users.
L'interaction entre les différents modules insérés et le logiciel client s'effectue de préférence par l'intermédiaire d'une zone de données commune contenue dans l'espace protégé de données précité. La lecture et l'écriture dans cette zone ne peuvent être effectuées que par les logiciels participant au système, à savoir les modules insérés et le logiciel client.The interaction between the different modules inserted and the client software preferably takes place via a common data area contained in the aforementioned protected data space. Reading and writing in this zone can only be carried out by the software participating in the system, namely the modules inserted and the client software.
C'est dans cette zone qu'on trouve en particulier le la valeur du compteur global de temps. Cet espace protégé contient diverses autres zones pouvant avoir des degrés de protection (par exemple par chiffrement) à différents niveaux. Ainsi, à chaque module inséré est associée une zone à laquelle seuls ce module et le logiciel tiers peuvent accéder, et contenant la valeur du compteur spécifique.It is in this area that the value of the global time counter is found in particular. This protected space contains various other zones which may have degrees of protection (for example by encryption) at different levels. Thus, each module inserted is associated with a zone to which only this module and the third-party software can access, and containing the value of the specific counter.
Lors d'une connexion du poste client au serveur, c'est de préférence l'ensemble du contenu de l'espace protégé qui est transmis au serveur, puis mis à jour. Le serveur a par ailleurs un accès en lecture et en écriture à l'ensemble de cet espace, non seulement pour la gestion de la comptabilisation mais également, par exemple, pour la gestion des protections.When the client workstation is connected to the server, it is preferably all of the content of the protected space which is transmitted to the server and then updated. The server also has read and write access to this entire space, not only for the management of accounting but also, for example, for the management of protections.
Description des processus logicielsDescription of software processes
a) modules insérésa) modules inserted
Comme on l'a indiqué, chaque logiciel tiers comporte un module inséré qui lui est propre, en étant de préférence étroitement associé au code exécutable dudit
logiciel tiers. Ce principe d'insertion, qui s'effectue au niveau des informations échangées entre le logiciel tiers en question et le système d'exploitation du poste client PC, s'effectue de préférence à l'aide d'un agent logiciel dont la conception et la mise au point sont à la portée de l'homme du métier et ne seront pas décrites en détail. Il a pour avantage principal de ne pas avoir à recompiler le code exécutable du logiciel tiers et donc à disposer des codes sources de celui-ci. Avantageusement, on utilise un module inséré de base identique pour tous les logiciels tiers ou au moins pour une partie de ceux-ci, qui soit paramétrable en fonction de certaines caractéristiques du logiciel tiers (empreintes logiciel différentes, sécurités différentes, etc.).As indicated, each third-party software has its own inserted module, preferably being closely associated with the executable code of said third-party software. This insertion principle, which takes place at the level of the information exchanged between the third-party software in question and the operating system of the PC client workstation, is preferably carried out using a software agent whose design and the development are within the reach of the skilled person and will not be described in detail. Its main advantage is that it does not have to recompile the executable code of third-party software and therefore has to have the source codes of it. Advantageously, an identical basic module is used for all third-party software or at least for part of it, which can be configured as a function of certain characteristics of the third-party software (different software fingerprints, different security, etc.).
Mais chaque module inséré peut être spécifique en fonction du logiciel tiers, et notamment être conçu pour exploiter diverses autres données caractérisant l'utilisation du logiciel tiers. Par exemple :However, each module inserted can be specific depending on the third-party software, and in particular be designed to exploit various other data characterizing the use of the third-party software. For example :
- un module inséré associé à un logiciel anti-virus peut comptabiliser l'utilisation de ce logiciel par le nombre de virus détectés et éradiqués,- an inserted module associated with anti-virus software can count the use of this software by the number of viruses detected and eradicated,
- un module inséré associé à un logiciel produisant des documents (traitement de texte, dessin, tableur, etc.) peut comptabiliser le nombre de documents ouverts et/ou créés et/ou modifiés,- an inserted module associated with software producing documents (word processing, drawing, spreadsheet, etc.) can count the number of documents opened and / or created and / or modified,
- un module inséré associé à un logiciel de jeu peut comptabiliser le nombre de compléments (« add-ons » en terminologie anglo-saxonne) installés et utilisés, ... Au lancement d'un logiciel tiers donné, déclenché par l'utilisateur au niveau du système d'exploitation du poste client PC, le module inséré associé PL3 réalise une vérification en effectuant une lecture de la valeur du compteur global, détermine si l'utilisateur dispose d'une réserve de temps appropriée. En complément, on peut prévoir au niveau des modules insérés et/ou au niveau du logiciel client un processus de gestion de droits d'utilisation non décomptée (usage illimité), et dans ce cas, la vérification de la valeur du compteur global n'est pas effectuée. Dans le cas où l'utilisateur ne dispose pas des droits ad hoc, le module inséré provoque l'affichage d'un message indiquant à l'utilisateur l'impossibilité d'exécuter ce logiciel tiers.
Si au contraire la vérification est concluante, le module inséré PL3 autorise le lancement du logiciel tiers. A partir de là, et de façon périodique (par exemple toutes les minutes), le module inséré PL3 active une instruction de décrémentation du compteur global de réserve de temps ; le module inséré, à cette occasion ou par un processus d'échange indépendant, indique également au logiciel client PL2 la valeur du compteur de temps spécifique qu'il tient à jour relativement à l'utilisation du logiciel tiers en question.- an inserted module associated with a game software can count the number of add-ons (English add-ons) installed and used, ... When launching a given third-party software, triggered by the user at operating system level of the PC client station, the associated inserted module PL3 performs a verification by reading the value of the global counter, determines whether the user has an appropriate time reserve. In addition, it is possible to provide, at the level of the inserted modules and / or at the level of the client software, a process for managing usage rights that are not counted down (unlimited use), and in this case, the verification of the value of the global counter n ' is not performed. If the user does not have ad hoc rights, the inserted module causes the display of a message indicating to the user that it is impossible to run this third-party software. If on the contrary the verification is conclusive, the inserted module PL3 authorizes the launch of the third-party software. From there, and periodically (for example every minute), the inserted module PL3 activates an instruction to decrement the global time reserve counter; the module inserted, on this occasion or by an independent exchange process, also indicates to the client software PL2 the value of the specific time counter that it keeps up to date with respect to the use of the third-party software in question.
b) logiciel clientb) client software
Chaque poste client utilisé par un utilisateur du système incorpore un logiciel client propre à l'utilisateur. Ce logiciel client incorpore une interface de dialogue avec l'utilisateur. Comme on l'a également indiqué précédemment, le logiciel client n'est chargé et installé sur le poste client qu'après que l'utilisateur ait souscrit au service, c'est à dire ouvert un compte utilisateur sur lequel les heures utilisées peuvent être comptabilisées. On peut, selon une variante, soumettre le démarrage du logiciel client à la connexion préalable de l'utilisateur au serveur, avec indication d'un nom d'utilisateur et d'un mot de passe valides.Each client workstation used by a user of the system incorporates user-specific client software. This client software incorporates a dialog interface with the user. As also indicated above, the client software is loaded and installed on the client computer only after the user has subscribed to the service, i.e. opened a user account on which the hours used can be recorded. According to a variant, it is possible to subject the launch of the client software to the prior connection of the user to the server, with the indication of a valid user name and password.
La présence du logiciel client est nécessaire pour pouvoir utiliser les logiciels tiers récupérés. En cas d'absence, le dialogue obligatoire, via le logiciel client, entre le logiciel serveur et les modules insérés dans les logiciels tiers ne s'établit pas et l'exécution des logiciels tiers ainsi que leur utilisation est impossible.Client software is required to use the recovered third-party software. In case of absence, the compulsory dialogue, via the client software, between the server software and the modules inserted in the third-party software is not established and the execution of the third-party software as well as their use is impossible.
Le logiciel client permet également à l'utilisateur, par l'interface de dialogue, de consulter le temps et/ou autres données d'utilisation dont il dispose, et/ou d'autres informations mises à sa disposition par les modules insérés ou par le serveur.The client software also allows the user, via the dialog interface, to consult the time and / or other usage data available to him, and / or other information made available to him by the modules inserted or by the server.
Une fonction essentielle du logiciel client est, une fois ce temps consommé, de permettre à l'utilisateur d'obtenir une nouvelle réserve temps d'utilisation (compteur global). Cette obtention s'effectue en demandant une connexion (en l'espèce par TCP/IP) avec le système de distribution de temps intégré au serveur,
cette connexion impliquant la fourniture au serveur par l'utilisateur de son nom d'utilisateur et de son mot de passe.An essential function of the client software is, once this time has been used up, to allow the user to obtain a new reserve of usage time (global counter). This is obtained by requesting a connection (in this case by TCP / IP) with the time distribution system integrated into the server, this connection implies the supply to the server by the user of his username and password.
Une fois la connexion réseau établie et les vérifications nécessaires effectuées par le serveur (absence d'erreur, compte client valide et créditeur, etc.), l'espace protégé de données est mis à jour notamment avec une recharge déterminée de la réserve de temps permettant à nouveau à l'utilisateur d'utiliser un quelconque logiciel tiers géré par le système.Once the network connection has been established and the necessary verifications carried out by the server (absence of error, valid customer account and credit, etc.), the protected data space is updated in particular with a determined recharge of the time reserve again allowing the user to use any third party software managed by the system.
Selon des règles de gestion propres au serveur, la durée de la recharge fournie peut varier. Par exemple, sa valeur maximale après la création d'un compte client peut être de quatre heures et, sous certaines conditions (ancienneté, fréquence d'utilisation, offre spéciale, ...) cette valeur peut être augmentée, notamment jusqu'àDepending on server-specific management rules, the duration of the recharge provided may vary. For example, its maximum value after the creation of a customer account can be four hours and, under certain conditions (seniority, frequency of use, special offer, ...) this value can be increased, in particular up to
8 heures ou au delà.8 hours or more.
Dès l'achèvement d'une telle transaction, tous les compteurs spécifiques de temps (compteurs ascendants) associés aux différents logiciels tiers sont initialisés à zéro.As soon as such a transaction is completed, all the specific time counters (ascending counters) associated with the different third-party software are initialized to zero.
Bien entendu, le logiciel client, en liaison avec le serveur, peut assurer d'autres fonctions, et notamment la consultation du serveur pour déterminer une liste de logiciels tiers qui seraient devenus « à utilisation illimitée ».Of course, the client software, in conjunction with the server, can perform other functions, including consulting the server to determine a list of third-party software that has become "unlimited use".
c) logiciel serveurc) server software
Le serveur a pour fonction de répondre à toutes les connexions demandées par les logiciels clients, comme décrit en particulier ci-dessus.The function of the server is to respond to all the connections requested by the client software, as described in particular above.
Le logiciel frontal du serveur s' interface avec le système de gestion du temps et distribue ou les temps d'utilisation aux utilisateurs selon des règles de gestion qui peuvent être diverses (pré-approvisionnement du compte, facturation sur consommation, etc.).The front-end software of the server interfaces with the time management system and distributes or the times of use to the users according to management rules which can be diverse (pre-provisioning of the account, invoicing on consumption, etc.).
Comme indiqué ci-dessus, avant de fournir à un utilisateur un nouveau temps d'utilisation, le logiciel serveur vérifie l'identité de l'utilisateur et l'état de son compte (qui peut être notamment bloqué ou désactivé), et débite sur le compte client les temps utilisés par l'utilisateur sur ses différents logiciels tiers.
Selon une option, et comme évoqué plus haut, on peut prévoir que, suivant le temps déjà consommé par un utilisateur donné sur un logiciel tiers, le serveur active l'utilisation illimitée de ce logiciel tiers en mode « illimité » pour cet utilisateur.As indicated above, before providing a user with a new time of use, the server software checks the identity of the user and the state of his account (which can in particular be blocked or deactivated), and debits on the customer account the times used by the user on his various third-party software. According to one option, and as mentioned above, it can be foreseen that, according to the time already consumed by a given user on third party software, the server activates the unlimited use of this third party software in "unlimited" mode for this user.
Description détaillée des fonctionnalités de l 'inventionDetailed description of the functionalities of the invention
a) intégration de logiciels existants dans le systèmea) integration of existing software into the system
Pour pouvoir intégrer un logiciel tiers préexistant au système et au procédé selon l'invention, plusieurs approches peuvent être retenues.To be able to integrate pre-existing third-party software into the system and method according to the invention, several approaches can be adopted.
En premier lieu, dans le cas général où l'exploitant du système est directement l'éditeur d'un logiciel tiers ou un partenaire de cet éditeur, il peut en général accéder aux codes sources de ce logiciel, et l'intégration s'effectue par programmation de façon directement intégrée au logiciel.First, in the general case where the system operator is directly the editor of a third-party software or a partner of this editor, he can generally access the source codes of this software, and the integration is carried out by programming directly integrated into the software.
Dans certains cas où l'accès aux codes sources ne sera pas possible, on retiendra alors des solutions qui ne nécessitent pas un tel accès. Une solution peut consister à analyser l'exécution et la structure du logiciel, sachant qu'au moins certaines fonctionnalités du module inséré peuvent être mises en œuvre à l'aide de ces seules informations (détection du lancement du logiciel, détection du fait de quitter le logiciel, interdiction du lancement ou fin d'exécution forcée en cas de réserve de temps devenue insuffisante, etc.).In some cases where access to source codes will not be possible, solutions will then be retained which do not require such access. A solution can consist in analyzing the execution and the structure of the software, knowing that at least certain functionalities of the inserted module can be implemented using only this information (detection of the launching of the software, detection of the fact of leaving the software, prohibition of the launch or end of forced execution in the event of insufficient time reserve, etc.).
Concrètement, le programme du module inséré est lancé par le système en même temps que le logiciel tiers, et exécute de façon conditionnelle les opérations nécessaires (début et fin de comptage du temps, comptabilisation d'autres données, écriture en mémoire, etc.). Ce programme est associé au logiciel tiers de manière à être invisible pour l'utilisateur, et l'exécution du logiciel tiers n'est possible que si le module inséré est bien lui aussi lancé.Concretely, the program of the inserted module is launched by the system at the same time as the third-party software, and performs the necessary operations conditionally (start and end of time counting, recording of other data, writing in memory, etc.) . This program is associated with third-party software so as to be invisible to the user, and execution of third-party software is only possible if the inserted module is also launched.
b) obtention par l'utilisateur de logiciels tiers
Cette obtention s'effectuer par le réseau RE, et met en jeu un serveur Web (typiquement le serveur SV de la présente invention) et un serveur de téléchargement ST (serveur de type FTP pour « File Transfer Protocol » en terminologie anglo- saxonne). La procédure est la suivante : - le serveur Web permet la recherche d'un logiciel tiers à partir de multiples critères et présente un ensemble d'informations descriptif de chaque logiciel tiers ;b) user obtaining third-party software This is done by the RE network, and involves a Web server (typically the SV server of the present invention) and a ST download server (FTP type server for "File Transfer Protocol" in English terminology) . The procedure is as follows: - the Web server allows the search for third-party software based on multiple criteria and presents a set of information describing each third-party software;
- le serveur SV du système de l'invention, après avoir si nécessaire authentifié l'utilisateur, détermine selon des règles de gestion prédéfinies si l'utilisateur peut effectivement obtenir le logiciel (acompte non vide, compte valide, nombres d'heures consommées et payées suffisant pour un nouveau téléchargement, etc.) ;- the server SV of the system of the invention, after having if necessary authenticated the user, determines according to predefined management rules if the user can actually obtain the software (non-empty deposit, valid account, number of hours consumed and paid sufficient for a new download, etc.);
- si l'utilisateur est autorisé à obtenir le logiciel, le serveur SV autorise l'accès par le poste client au serveur ST, et le téléchargement du logiciel tiers, équipé de son propre module inséré ; - après installation régulière du nouveau logiciel tiers et sa reconnaissance par le logiciel client à grâce à un échange avec le module inséré dudit logiciel tiers, le logiciel client envoie au serveur SV une instruction permettant la mise à jour des informations du compte client en vue de la prise en compte des temps d'utilisation de ce nouveau logiciel. Le système comporte de préférence des dispositions de sécurité permettant de sécuriser et de limiter dans le temps l'accès au serveur ST par un utilisateur donné pour le logiciel concerné. Ainsi le système comporte par exemple, dans le serveur ST, un compte utilisateur de téléchargement, basé sur le même nom d'utilisateur et le même mot de passe que le serveur SV. La figure 4 illustre un exemple d'architecture pour la mise en œuvre du processus de téléchargement à la demande décrit ci-dessus et des autres fonctionnalités de l'invention. On y a représenté le serveur SV, qui lui-même communique avec un serveur de bases de données SBDD gérant les comptes clients, le serveur de téléchargement ST, le réseau RE, le poste client PC, ainsi que des serveurs Web quelconques.
c) mise à jour du logiciel client- if the user is authorized to obtain the software, the server SV authorizes access by the client station to the server ST, and the downloading of the third-party software, equipped with its own inserted module; - after regular installation of the new third-party software and its recognition by the client software through an exchange with the inserted module of said third-party software, the client software sends the SV server an instruction allowing the updating of the information of the client account in order to taking into account the times of use of this new software. The system preferably includes security provisions making it possible to secure and limit access in time to the server ST by a given user for the software concerned. Thus the system includes, for example, in the server ST, a user download account, based on the same user name and the same password as the server SV. FIG. 4 illustrates an example of architecture for the implementation of the download on demand process described above and of the other functionalities of the invention. There is shown the server SV, which itself communicates with a database server SBDD managing the client accounts, the download server ST, the network RE, the client station PC, as well as any web servers. c) update of client software
La mise à jour du logiciel client dans un poste client PC est de préférence réalisée via le réseau Internet RE, par téléchargement d'une nouvelle version sur le site soit à l'invitation du serveur dès qu'une telle version est disponible, soit de façon automatique selon des technologies actuellement existantes.The updating of the client software in a PC client station is preferably carried out via the Internet network RE, by downloading a new version from the site either at the invitation of the server as soon as such a version is available, or from automatically using currently existing technologies.
De telles mises à jour ont pour buts principaux :The main purposes of such updates are:
- de diffuser des listes mises à jour des logiciels tiers (nouveaux logiciels ou nouvelles versions de logiciels existants), - de pérenniser ou d'améliorer la sécurité du système en modifiant les sécurités mise en place dans les logiciels (logiciel client, modules insérés, logiciels tiers notamment)- distribute updated lists of third-party software (new software or new versions of existing software), - perpetuate or improve system security by modifying the security implemented in software (client software, modules inserted, third-party software in particular)
Avantageusement, le logiciel client comporte un module de mise à jour permettant d'effectuer automatiquement l'installation de la version mise à jour sur le poste client.Advantageously, the client software includes an update module making it possible to automatically install the updated version on the client computer.
d) obtention de temps et comptabilisation des temps consommésd) obtaining time and recording the time consumed
A l'épuisement de la réserve de temps (cf. supra), l'utilisateur doit connecter son poste client PC au serveur SV grâce au logiciel client en vue d'une recharge de la réserve. Avantageusement, une telle connexion en vue d'une recharge est également possible, à l'initiative de l'utilisateur, à tout moment même si la réserve de temps n'est pas vide.When the time reserve is used up (see above), the user must connect his PC client station to the SV server using the client software in order to reload the reserve. Advantageously, such a connection for recharging is also possible, at the initiative of the user, at any time even if the time reserve is not empty.
La procédure est la suivante : - lancement du logiciel client dans le poste client ;The procedure is as follows: - launching the client software in the client station;
- affichage sur un écran du poste client de la réserve de temps encore disponible, après lecture du compteur global (mémorisé de façon protégée dans le poste client) par le logiciel client ;- display on a client station screen of the time reserve still available, after reading the global counter (stored in a protected manner in the client station) by the client software;
- établissement (manuel ou automatique) de la connexion avec le serveur SV ;
- envoi par le logiciel client au logiciel serveur des valeurs de temps (compteurs spécifiques) réellement passés sur chacun des logiciels tiers depuis la dernière transaction de recharge ;- establishment (manual or automatic) of the connection with the SV server; - sending by the client software to the server software of the time values (specific counters) actually spent on each of the third-party software since the last recharge transaction;
- au niveau du serveur, intégration des données reçues ; - envoi par le serveur au logiciel client, par un message sécurisé approprié, d'une nouvelle réserve de temps, et d'un message relatif à cet envoi,- at the server level, integration of the data received; - sending by the server to the client software, by an appropriate secure message, of a new time reserve, and of a message relating to this sending,
- modification de la valeur du compteur global dans le logiciel client, et affichage du message, avec présentation de la nouvelle valeur de la réserve de temps.- modification of the value of the global counter in the client software, and display of the message, with presentation of the new value of the time reserve.
On précisera ici que la réserve de temps est utilisable par l'utilisateur sur tous les logiciels tiers adhérant au système.It will be specified here that the time reserve can be used by the user on all third-party software adhering to the system.
e) rémunération de l'utilisatione) user fees
Dans un contexte commercial grand public, l'invention est avantageusement mise en œuvre de telle sorte que, pour chaque logiciel tiers utilisé, le compte client soit débité de la somme correspondant à son temps effectif d'utilisation depuis le débit précédent, temps effectif qui est dérivé de la valeur du compteur spécifique, pour chaque logiciel tiers, transmise du poste client PC au serveur SV. Ainsi, chaque logiciel tiers peut avoir son propre prix d'utilisation soit selon le temps passé soit selon d'autres données d'utilisation.In a general commercial context, the invention is advantageously implemented in such a way that, for each third-party software used, the customer account is debited with the sum corresponding to its effective time of use from the previous debit, effective time which is derived from the value of the specific counter, for each third-party software, transmitted from the PC client station to the SV server. Thus, each third party software can have its own usage price either according to the time spent or according to other usage data.
Ainsi la comptabilisation de l'utilisation ne s'effectue qu'après utilisation du logiciel tiers, et l'utilisateur n'a pas à aucun moment à spécifier le temps qu'il souhaite passer sur un logiciel. En revanche, une telle approche implique de préférence le recours à un compte client contenant une avance monétaire, que l'utilisateur devra maintenir au fils de sa consommation.Thus the accounting of the use is carried out only after use of the third-party software, and the user does not have at any time to specify the time he wishes to spend on a software. On the other hand, such an approach preferably involves the use of a customer account containing a monetary advance, which the user must maintain over the course of his consumption.
On notera ici que, bien que les compteurs spécifiques d'utilisation des logiciels tiers soient remis à zéro après chaque débit en compte client, il est avantageux que le serveur SN garde une trace, dans une base de données, des échanges passés avec les logiciels clients des différents utilisateurs, de manière notamment à disposer d'un outil de gestion des utilisateurs et à pouvoir régler les éventuels conflits.
f) blocage des logiciels tiersIt should be noted here that, although the specific counters for the use of third-party software are reset to zero after each debit to the customer account, it is advantageous for the SN server to keep track, in a database, of past exchanges with the software customers of different users, in particular to have a user management tool and to be able to resolve any conflicts. f) blocking of third party software
Le blocage des logiciels tiers s'effectue par les modules insérés. Plus précisément, chaque module inséré dialogue avec le logiciel tiers et s'exécute durant la phase d'initialisation du lancement du logiciel tiers associé, de manière à neutraliser ce lancement et donc d'empêcher l'exécution du logiciel tiers, typiquement dans les cas suivants :Third-party software is blocked by the modules inserted. More precisely, each module inserted dialogues with the third-party software and is executed during the initialization phase of the launch of the associated third-party software, so as to neutralize this launch and therefore to prevent the execution of the third-party software, typically in the cases following:
- si la valeur du compteur global est à zéro (sauf si le logiciel est à utilisation illimité et gratuite) ;- if the value of the global counter is zero (except if the software is for unlimited and free use);
- si le logiciel client n'est pas installé sur la machine.- if the client software is not installed on the machine.
- si des anomalies à caractère plus ou moins frauduleux ont été détectées (atteinte à l'intégrité du logiciel tiers, etc.).- if anomalies of a more or less fraudulent nature have been detected (attack on the integrity of third-party software, etc.).
Exemple d'implémentation algorithmique des processus serveur, client et module inséréExample of algorithmic implementation of server, client and inserted module processes
On précisera tout d'abord que les composants logiciels mis en œuvre dans le poste client selon la présente invention opèrent en liaison avec un fichier de données structurées. Autant le logiciel client que les modules insérés peuvent, dans des conditions déterminées, lire et écrire dans ces données structurées.First of all, it will be specified that the software components implemented in the client station according to the present invention operate in connection with a structured data file. Both the client software and the modules inserted can, under specified conditions, read and write to this structured data.
On prévoit de préférence deux structures principales de données:Two main data structures are preferably provided:
- une structure de données contenant toutes les informations propres à l'utilisateur telles que : * son nom d'utilisateur LOGIN dans le système et son mot de passe- a data structure containing all the information specific to the user such as: * his LOGIN user name in the system and his password
PWD,PWD,
* le contenu du compteur global GCT,* the content of the GCT global counter,
* le nombre de logiciel tiers que l'utilisateur a exécutés depuis une remise à zéro des compteurs spécifiques, * des données d'identification du poste client, telles que type et version du système d'exploitation, l'espace disque disponible, un identificateur de
poste client, noté IDPC, tel que le numéro de série de la machine ou de ses disques, etc.) ;* the number of third-party software that the user has run since a reset of the specific counters, * identification data of the client workstation, such as type and version of the operating system, available disk space, an identifier of client station, noted IDPC, such as the serial number of the machine or its disks, etc.);
- une structure de données qui contient notamment, pour chaque logiciel tiers (x) utilisé : * un identifiant du logiciel tiers IDLx,- a data structure which contains, in particular, for each third-party software (x) used: * an identifier for the third-party software IDLx,
* un nom du logiciel tiers NOMx,* a name of the third-party software NOMx,
* le temps passé sur le logiciel tiers (contenu du compteur spécifique) SCTx,* the time spent on third-party software (content of the specific counter) SCTx,
* un indicateur ILLx qui permet au logiciel de déterminer si le logiciel tiers est à utilisation illimitée.,* an ILLx indicator which allows the software to determine whether the third-party software is for unlimited use.,
* un indicateur ACTx qui permet Tactivation du logiciel ; à cet égard, on peut prévoir qu'un logiciel téléchargé dans le cadre du système et du procédé selon l'invention soit initialement dans un état inutilisable, et que seule une connexion avec le serveur, avec fourniture d'un nom d'utilisateur et d'un mot de passe valides, permette, par modification de la valeur de l'indicateur ACTx, d'utiliser effectivement le logiciel ; une telle procédure présente par ailleurs l'avantage de permettre au serveur de connaître tout nouveau logiciel adhérant au système et exécutable par un utilisateur donné, et donc d'affecter à ce logiciel un comptage spécifique et une facturation de la consommation. Cette structure de données peut contenir également d'autres informations, tels que la version du logiciel (NERx), une identification de son distributeur et de son éditeur, et des données plus précises quant à l'utilisation du logiciel (dates et durées, fonctionnalités utilisées, fichiers créés, lus, modifiés, ajouts installés, etc.).* an ACTx indicator which enables the activation of the software; in this regard, provision can be made for software downloaded within the framework of the system and method according to the invention to be initially in an unusable state, and for only a connection with the server, with the supply of a user name and a valid password, allows, by modifying the value of the ACTx indicator, to effectively use the software; such a procedure also has the advantage of allowing the server to know any new software adhering to the system and executable by a given user, and therefore to assign to this software a specific metering and billing of consumption. This data structure may also contain other information, such as the software version (NERx), an identification of its distributor and publisher, and more precise data on the use of the software (dates and durations, functionalities used, files created, read, modified, additions installed, etc.).
a) logiciel client et logiciel serveura) client software and server software
La figure 5 illustre un logigramme schématique des opérations effectuées par le logiciel client et par le logiciel serveur, que l'on va maintenant décrire en détail : - case 501 : lancement du logiciel client par l'utilisateur, et lecture des données associées ;
- case 502 : lancement de la connexion, avec par exemple récupération d'une nouvelle réserve d'utilisation, Tactivation de logiciels tiers téléchargés, la mise à jour de logiciels tiers, etc.FIG. 5 illustrates a schematic flow diagram of the operations carried out by the client software and by the server software, which will now be described in detail: box 501: launch of the client software by the user, and reading of the associated data; - box 502: launch of the connection, with for example recovery of a new reserve of use, activation of downloaded third-party software, updating of third-party software, etc.
- case 501 ' : lecture, dans la machine, de données telles que le nombre d'heures restantes, les informations sur les logiciels tiers disponibles, sur les logiciels à utilisation gratuite, les détails de consommation logiciel tiers par logiciel tiers, l'adresse URL du serveur, etc.- box 501 ': reading, in the machine, of data such as the number of hours remaining, information on available third-party software, on free-use software, details of consumption of third-party software by third-party software, address Server URL, etc.
- case 502' : affichage d'une fenêtre invitant l'utilisateur à saisir son nom d'utilisateur LOGIN et son mot de passe PWD ; - case 502" : établissement de la connexion avec le serveur ;- box 502 ': display of a window inviting the user to enter their LOGIN user name and PWD password; - box 502 ": establishment of the connection with the server;
- case 503 : le serveur détermine si les données de connexion, y compris le nom d'utilisateur et le mot de passe, sont correctes ou non ;- box 503: the server determines whether the connection data, including the user name and password, are correct or not;
- case 504 : dans la négative, affichage d'informations sur l'échec de l'établissement de cette liaison et de la cause de cette échec (problème de connexion réseau, serveur indisponible, mot de passe erroné, etc.) ; si l'erreur provient du mot de passe, il est déterminé à la case 508 si plus de trois essais infructueux ont été réalisés ; dans l'affirmative, le blocage (temporaire ou définitif) du compte client est réalisé en case 509 ;- box 504: if not, display of information on the failure to establish this connection and the cause of this failure (network connection problem, server unavailable, incorrect password, etc.); if the error comes from the password, it is determined in box 508 if more than three unsuccessful attempts have been made; if so, the blocking (temporary or permanent) of the customer account is carried out in box 509;
- case 505 : dans l'affirmative, envoi par le logiciel client au serveur, de préférence après cryptage, des informations IDPC, LOGIN, PWD, de la valeur du compte et des diverses valeurs associées aux logiciels tiers, et en particulier les valeurs NOMx, IDLx, VERx, ILLx, ACTx, ... et des compteurs spécifiques associés SCTx ;- box 505: if so, sending by client software to the server, preferably after encryption, of IDPC, LOGIN, PWD information, of the account value and of the various values associated with third-party software, and in particular the NOMx values , IDLx, VERx, ILLx, ACTx, ... and specific counters associated with SCTx;
- case 510 : affectation par le serveur des différentes valeurs de compteurs SCTx de consommation des logiciels tiers sur le compte client identifié par l'information LOGIN, et enregistrement des autres données reçues ;- box 510: assignment by the server of the different values of SCTx counters for consumption of third-party software on the client account identified by the LOGIN information, and recording of the other data received;
- case 511 : le serveur vérifie si, à la suite de cette affectation, le compte client reste créditeur (cas d'un paiement par avance) ; d'autres données peuvent aussi être vérifiées ; - case 512 : dans le cas où le compte client n'est plus créditeur (ou possède un crédit inférieur à un seuil donné), le serveur envoie au poste client une instruction
en vue d'afficher sur l'écran du poste client un message de demande d'approvisionnement financier du compte (avec par exemple un lien vers un système de paiement sécurisé par carte de crédit ou analogue) ; en outre, si des données sont invalides ou s'il existe d'autres problèmes, la signalisation correspondante sur le compte client peut aussi être réalisée ;- box 511: the server checks whether, following this allocation, the customer account remains in credit (in the case of payment in advance); other data may also be verified; - box 512: in the case where the customer account is no longer in credit (or has a credit below a given threshold), the server sends the client an instruction in order to display on the screen of the client station a message requesting financial supply of the account (with for example a link to a secure payment system by credit card or the like); moreover, if data is invalid or if there are other problems, the corresponding signaling on the customer account can also be carried out;
- case 513 : dans le cas où le compte client contient un crédit suffisant, le serveur fournit au poste client une instruction de recharge du compteur global GCT avec un temps prédéterminé, comme décrit plus haut ; à cette occasion, le serveur peut également fournir au poste client une liste mise à jour des logiciels tiers à utilisation illimitée ou gratuite, des informations de promotion, des instructions d'activation des nouveaux logiciels installés ou de prise en compte d'un nouvel identificateur IDPC (voir plus loin), des informations sur l'état de son compte client, etc. ;- box 513: in the case where the client account contains sufficient credit, the server provides the client station with an instruction to recharge the global counter GCT with a predetermined time, as described above; on this occasion, the server can also provide the client station with an updated list of third-party software for unlimited or free use, promotion information, instructions for activating the new software installed or for taking into account a new identifier IDPC (see below), information on the status of their customer account, etc. ;
- case 514 : la transaction entre le poste client PC et le serveur SN se termine, avec affichage sur le poste client de la nouvelle réserve de temps d'utilisation, et le cas échéant d'autres informations.- box 514: the transaction between the PC client station and the SN server ends, with the posting of the new time reserve on the client station, and if necessary other information.
A cet égard, la figure 6 illustre l'allure possible d'une fenêtre d'interface utilisateur affichée notamment aux étapes 502' et 514 de la figure 5, comportant :In this regard, FIG. 6 illustrates the possible shape of a user interface window displayed in particular in steps 502 ′ and 514 of FIG. 5, comprising:
- une indication du nombre d'heures disponibles (contenu du compteur global GCT) ;- an indication of the number of hours available (content of the GCT global counter);
- un menu déroulant MD permettant la consultation de la liste de logiciels tiers (ici des jeux) à utilisation illimitée ;- a drop-down menu MD allowing the consultation of the list of third-party software (here games) for unlimited use;
- une zone ZS de suivi du déroulement de la connexion ;- a ZS zone for monitoring the progress of the connection;
- deux champs de saisie CS, respectivement pour le nom d'utilisateur LOGIΝ et pour le mot de passe PWD ; et- two input fields CS, respectively for the user name LOGIΝ and for the password PWD; and
- un bouton BT permettant le lancement de la connexion (passage à l'étape 503 de la figure 5).- a BT button allowing the launching of the connection (go to step 503 of FIG. 5).
On notera ici que, du fait qu'à des fins d'authentification un identificateur de machine IDPC est transmis par le poste client au serveur (étape 505). Ceci permet que, lors du lancement du logiciel client (étape 501), une nouvelle valeur de IDPC
(par exemple dans le cas où l'utilisateur a remplacé sa machine par une machine neuve) soit automatiquement prise en compte par le serveur.It will be noted here that, for the purpose of authentication, a machine identifier IDPC is transmitted by the client station to the server (step 505). This allows, when the client software is launched (step 501), a new value of IDPC (for example in the case where the user has replaced his machine with a new one) is automatically taken into account by the server.
b) module inséréb) module inserted
Comme on l'a indiqué un module inséré est associé à chaque logiciel tiers adhérant au système.As indicated, an inserted module is associated with each third-party software adhering to the system.
Un logigramme schématique du fonctionnement d'un module inséré est illustré sur la figure 7, à laquelle on va maintenant se référer : - case 701 : le lancement du module inséré se produit par interception d'une instruction de lancement du logiciel tiers associé ;A schematic flow diagram of the operation of an inserted module is illustrated in FIG. 7, to which we will now refer: - box 701: the launch of the inserted module occurs by interception of an instruction to launch the associated third-party software;
- cases 702 et 703 (qui est un détail de la case 702) : le module lit un ensemble de paramètres (ILLx pour déterminer si l'utilisateur est illimitée, ACTx pour déterminer si le logiciel tiers est utilisable, la valeur du compteur global GCT, etc.) afin de déterminer si le lancement du logiciel tiers est autorisé ; par exemple, dans le cas où le logiciel n'est pas à utilisation gratuite, le module inséré détermine si la réserve du compteur global est à zéro ou non ; on notera ici que dans le cas où ces données sont absentes, incomplètes ou incohérentes, on peut prévoir que le module inséré effectue une création de données correspondantes à cette étape (notamment la création d'un compte pour un nouveau logiciel, dont la valeur de ACTx sera telle qu'il sera initialement inutilisable) ;- boxes 702 and 703 (which is a detail of box 702): the module reads a set of parameters (ILLx to determine if the user is unlimited, ACTx to determine if the third-party software is usable, the value of the global counter GCT , etc.) to determine whether the launch of third-party software is authorized; for example, in the case where the software is not for free use, the inserted module determines whether the reserve of the global counter is at zero or not; it should be noted here that in the case where this data is absent, incomplete or inconsistent, it can be provided that the inserted module creates data corresponding to this step (in particular the creation of an account for new software, the value of ACTx will be such that it will initially be unusable);
- dans le cas où le lancement du logiciel tiers est refusé, le programme passe à la case 704 qui provoque l'affichage d'un message avertissant l'utilisateur qu'il ne peut pas utiliser le logiciel, et de la cause de cette impossibilité ; - si au contraire il a été déterminé que l'utilisation du logiciel tiers est autorisée (utilisation gratuite, réserve de temps non nulle, etc.), le programme passe à la case 705 où une temporisation est lancée, puis surveillée à la case 705' (par exemple toutes les heures) de manière à causer l'exécution correspondant à la case 706 (décrite ci-dessous) selon une périodicité déterminée ; - case 706 : différentes valeurs propres au logiciel tiers sont mise à jour, comme la valeur du compteur spécifique SCTx qui est incrémentée d'une heure (on
notera ici qu'on peut prévoir une périodicité différente et notamment plus fine : à la minute, au quart d'heure, etc.) ainsi que des valeurs propres au dispositif comme la valeur du compteur global GCT qui est décrémentée d'autant ; comme on l'a vu, on peut en variante gérer ici d'autres données relatives à l'utilisation du logiciel tiers ; - case 707 : à la suite de cela, le module inséré interroge le logiciel client et vérifie en particulier si la valeur décrémentée du compteur global a atteint zéro ; dans la négative, le programme retourne en amont de l'étape 705 pour attendre l'écoulement de la temporisation suivante ; dans l'affirmative, le programme passe à l'étape 708 d'affichage sur le poste client d'un message invitant l'utilisateur à quitter le logiciel tiers en cours d'exécution ;- in the event that the launch of the third-party software is refused, the program goes to box 704 which causes the display of a message warning the user that he cannot use the software, and of the cause of this impossibility ; - if on the contrary it has been determined that the use of third-party software is authorized (free use, non-zero time reserve, etc.), the program goes to box 705 where a time delay is started, then monitored in box 705 '(for example every hour) so as to cause the execution corresponding to box 706 (described below) according to a determined periodicity; - box 706: various values specific to third-party software are updated, such as the value of the specific counter SCTx which is incremented by one hour (on note here that a different periodicity and in particular a finer one can be provided (per minute, quarter of an hour, etc.) as well as values specific to the device such as the value of the global counter GCT which is decremented accordingly; as we have seen, we can alternatively manage here other data relating to the use of third-party software; - box 707: following this, the inserted module interrogates the client software and checks in particular whether the decremented value of the global counter has reached zero; if not, the program returns upstream of step 705 to wait for the next timer to elapse; in the affirmative, the program proceeds to step 708 of displaying on the client station a message inviting the user to leave the third-party software being executed;
- si cette invitation n'est pas suivie au bout d'une période de temps donnée (par exemple une heure), le module inséré communique avec le logiciel tiers pour lui demander son arrêt, ou en variante communique avec le système d'exploitation du poste client PC pour forcer l'arrêt de l'exécution du logiciel tiers (case 709). Bien entendu, la présente invention n'est nullement limitée à la forme de réalisation décrite ci-dessus et représentée sur les dessins, mais l'homme du métier saura y apporter de nombreuses variantes ou modifications.- if this invitation is not followed after a given period of time (for example an hour), the inserted module communicates with the third-party software to ask it to stop, or alternatively communicates with the operating system of the PC client station to force stop execution of third-party software (box 709). Of course, the present invention is in no way limited to the embodiment described above and shown in the drawings, but a person skilled in the art will know how to make numerous variants or modifications to it.
En particulier, la répartition des tâches entre le serveur, le logiciel client et l'agent logiciel (module inséré) associé à chaque application gérée par le système et le procédé peut être différente.In particular, the distribution of tasks between the server, the client software and the software agent (module inserted) associated with each application managed by the system and the method may be different.
A cet égard, on peut prévoir une forme simplifiée dans laquelle l'utilisateur achète en ligne des « unités » qui seront consommées, plus ou moins rapidement selon l'application utilisées, au sein d'un mécanisme sécurisé dans le poste client.In this regard, a simplified form can be provided in which the user buys online "units" which will be consumed, more or less quickly depending on the application used, within a secure mechanism in the client station.
En outre, l'invention trouve application non seulement dans le cadre de l'exécution de programmes sur un poste informatique autonome, mais également dans le cadre de l'exécution de programmes dans un environnement en réseau.Furthermore, the invention finds application not only in the context of the execution of programs on an autonomous computer station, but also in the context of the execution of programs in a networked environment.
Par ailleurs, l'invention trouve application dans l'utilisation de données différentes pour différents logiciels tiers, en personnalisant sa mise en œuvre notamment en fonction du type de logiciel tiers concerné (logiciel professionnel, familial, jeu, etc.) et du modèle économique envisagé, sachant que l'invention permet précisément d'imaginer des modèles économiques inédits.
Furthermore, the invention finds application in the use of different data for different third-party software, by personalizing its implementation in particular according to the type of third-party software concerned (professional, family software, game, etc.) and the economic model. envisaged, knowing that the invention makes it possible precisely to imagine new economic models.