Brevet FR2857124A1 — publié le 20050107

La présente invention concerne un procédé de traitement d'enchères en ligne en temps réel. Plus précisément, l'invention concerne un procédé de traitement d'enchères en ligne en temps réel mis en oeuvre par un serveur d'enchère, du 5 type comportant les étapes suivantes: réception d'ordres d'enchère relatifs à un bien ou service mis en vente aux enchères, chaque ordre d'enchère étant associé à un montant; sélection d'un ordre d'enchère, parmi les ordres d'enchère reçus dont 10 le montant est égal au montant le plus élevé de tous les ordres d'enchère reçus. Un tel procédé est décrit dans le document WO 99/27476. Il s'agit d'un procédé de traitement d'enchères en ligne en temps réel mis en oeuvre par un serveur recevant des ordres d'enchère relatifs à un bien ou service mis en vente aux enchères. Dès que le serveur reçoit un ordre d'enchère dont le montant est strictement supérieur au montant de l'enchère précédente sélectionnée, le serveur sélectionne cet ordre d'enchère. Dans ce procédé, lorsqu'un utilisateur enchérit, l'ordre d'enchère qu'il envoie au serveur d'enchères transite par un réseau de transmission de données du type Internet. Or, le réseau Internet ne garantit ni le délai de transmission (variable selon le débit de connexion des utilisateurs), ni la bonne réception de l'ordre d'enchère. Il se peut donc que l'ordre de réception de deux ordres d'enchère par le serveur d'enchères soit l'ordre inverse de celui d'émission par deux terminaux différents, si les ordres d'enchère ont été émis à des instants très proches. Or dans l'état actuel de la technique, il est impossible de déterminer lequel des deux ordres d'enchère a été émis le premier car il est très difficile de synchroniser les horloges des terminaux utilisés par les utilisateurs. Le document WO 99/27476 expose ce problème, mais précise simplement que la perte d'un message ainsi que la durée variable de la transmission de ce message sont des aléas qui doivent être pris en considération par les utilisateurs avant de participer à l'enchère. Ce procédé peut donc créer des injustices en favorisant les utilisateurs disposant d'une connexion à haut débit. L'invention a pour but de remédier à cet inconvénient en fournissant un procédé de traitement d'enchères permettant de traiter les ordres d'enchère de façon plus équitable, c'est-à-dire sans défavoriser systématiquement les utilisateurs ne bénéficiant que d'une connexion à faible débit. A cet effet, l'invention a pour objet un procédé de traitement d'enchères en ligne en temps réel mis en oeuvre par un serveur d'enchère du type précité, caractérisé en ce que: - on déclenche une temporisation chaque fois que le serveur reçoit un ordre d'enchère d'un montant strictement supérieur au montant le plus élevé de tous les ordres d'enchère reçus précédemment et relatifs audit bien ou service; et - lors de l'étape de sélection, on sélectionne aléatoirement un ordre d'enchère parmi ceux reçus pendant la durée de temporisation. Un procédé de traitement d'enchères selon l'invention permet un traitement égal des ordres d'enchère reçus, quel que soit l'utilisateur et sa connexion. Si deux ordres d'enchère de même montant ont été reçus pendant la durée de temporisation, chaque ordre d'enchère a une chance d'être sélectionné par le serveur. Ainsi, tous les utilisateurs, dont les ordres d'enchère sont reçus par le serveur pendant la durée de temporisation sont traités à égalité et ce, quel que soit leur type de connexion. Un procédé de traitement d'enchères selon l'invention peut en outre comporter l'une ou plusieurs des caractéristiques suivantes: la mise en vente dudit bien ou service est clôturée à la fin d'une durée de vente prédéterminée, cette durée étant mesurée à partir de la réception du premier ordre d'enchère, le bien ou service mis en vente étant alors attribué au dernier ordre d'enchère sélectionné aléatoirement; la mise en vente dudit bien ou service est clôturée à la fin d'une durée de vente prédéterminée, cette durée étant mesurée à partir de la réception du dernier ordre d'enchère, le bien ou service mis en vente étant alors attribué à l'émetteur du dernier ordre d'enchère sélectionné aléatoirement; et la validité des ordres d'enchère est assurée par une méthode de signature des ordres d'enchère utilisant un code d'authentification de message. L'invention concerne aussi, selon une première variante, un procédé de traitement d'enchères en ligne en temps réel mis en oeuvre par un serveur d'enchère, comportant les étapes suivantes: (a) fixation par le serveur d'un montant associé à un bien ou service mis en vente aux enchères; (b) réception d'ordres d'enchères relatifs à ce bien ou service pour un montant correspondant au montant fixé par le serveur; (c) sélection d'un ordre d'enchère parmi les ordres d'enchères reçus puis retour à l'étape (a) pour la fixation d'un montant plus élevé associé au bien ou service mis en vente. Ce procédé se caractérise par le fait que: - on déclenche une temporisation chaque fois que le serveur reçoit un premier ordre d'enchère associé au montant fixé par le serveur; et - lors de l'étape de sélection, on sélectionne aléatoirement un ordre d'enchère parmi ceux reçus pendant la durée de temporisation. Selon une caractéristique particulière de ce procédé, la mise en vente dudit bien ou service est clôturée lorsque aucun ordre d'enchère n'est reçu par le serveur suite à la fixation d'un nouveau montant plus élevé, le bien ou service mis en vente étant alors attribué à l'émetteur du dernier ordre 15 d'enchère sélectionné aléatoirement. L'invention concerne également, selon une seconde variante, un procédé de traitement d'enchères en ligne en temps réel mis en oeuvre par un serveur d'enchère, comportant les étapes suivantes: (a) fixation par le serveur d'un montant associé à un bien ou service mis en vente aux enchères; (b) attente par le serveur d'une réception d'un ordre d'enchère relatif à ce bien ou service pour un montant correspondant au montant fixé par le serveur, et si aucun ordre d'enchère n'est reçu pendant une durée prédéterminée, alors retour à l'étape (a) pour la fixation d'un montant moins élevé associé au bien ou service mis en vente, - sinon, sélection d'un ordre d'enchère parmi les ordres d'enchères reçus; Ce procédé se caractérise par le fait que: - on déclenche une temporisation chaque fois que le serveur reçoit un premier ordre d'enchère associé au montant fixé par le serveur; et - lors de l'étape de sélection, on sélectionne aléatoirement un ordre d'enchère parmi ceux reçus pendant la durée de temporisation. L'invention sera mieux comprise à la lecture de la description qui va 35 suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels: la figure 1 représente schématiquement un système adapté pour la mise en oeuvre d'un procédé selon l'invention; la figure 2 est un organigramme représentant les différentes étapes d'un procédé selon l'invention; la figure 3 est un diagramme temporel symbolisant une vente aux enchères utilisant un procédé selon l'invention; La figure 4 est un schéma détaillant un procédé d'échanges sécurisés mis en oeuvre par le système de la figure 1. Le système représenté sur la figure 1 comporte r terminaux 1001, 1002, ... , 100r, par exemple des ordinateurs personnels. Ces terminaux 1001, 1002, ..., 100r sont utilisés par r enchérisseurs 1021, 1022, ..., 102r pour connaître les informations des enchères en cours et pour émettre des ordres d'enchère. Pour cela, les terminaux 1001, 1002, ..., 100r disposent de moyens d'affichage des informations d'enchère. Ces terminaux 1001, 1002, ..., 100,- sont reliés à un réseau 104 de transmission de données, par exemple le réseau Internet. Un serveur d'enchère 106 est utilisé pour gérer des ventes aux enchères, c'est à dire pour envoyer aux terminaux 1001, 1002, ..., 100r les informations concernant les enchères en cours (désignation du bien, nom du vendeur, montant du dernier ordre d'enchère sélectionné relatif à ce bien, durée restante...), et pour traiter les ordres d'enchère placés par les enchérisseurs 1021, 1022, ..., 102r. Chaque enchérisseur doit, pour être reconnu par le serveur 106, s'enregistrer avant le début d'une vente aux enchères auprès d'un tiers de confiance (ou TTP, de l'anglais Trusted Third Party ) qui gère le serveur 106. Un identifiant propre Id1, Id2, ..., Idr, est généré lors de cette phase d'enregistrement pour chaque terminal par le tiers de confiance puis est transmis par le serveur 106 de manière sécurisée à chaque terminal qui le stocke dans une zone mémoire 1081, 1082, ..., 108r. Le procédé de traitement d'enchères représenté sur la figure 2 est mis en oeuvre par le serveur d'enchère 106. Ce procédé utilise deux temporisations. Une première temporisation, propre à l'invention, de durée D de l'ordre de quelques secondes, résout les cas de conflits entre des ordres d'enchère reçus à instants très proches. Le rôle de cette temporisation sera précisé ultérieurement. La seconde temporisation de durée DE, qui varie de quelques minutes à quelques dizaines de minutes caractérise la durée limite au bout de laquelle le serveur 106 clôture l'enchère si il n'a reçut aucun nouvel ordre d'enchère depuis le précédent. Lors d'une étape 200, le serveur 106 initialise le montant d'un objet mis en vente à une valeur Mo. Dans la suite, le montant courant de l'enchère sera noté M. Le serveur 106 fixe également la durée DE et la durée D des deux temporisations. Lors d'une étape 202, le serveur 106 teste en permanence si l'une des deux temporisations est écoulée et s'il reçoit un nouvel ordre d'enchère. Si un nouvel ordre d'enchère a été reçu lors de l'étape 202, le serveur 106 teste la validité de cet ordre d'enchère lors d'une étape 204. La validité des ordres d'enchère est assurée par une méthode de signature des ordres d'enchère utilisant un code d'authentification de message. Cette méthode sera décrite ultérieurement en référence à la figure 4. Si l'ordre d'enchère à été validé lors de l'étape 204, le serveur S déclenche la temporisation de durée DE et compare la valeur du montant du nouvel ordre d'enchère à la valeur M de l'enchère courante lors d'une étape 206. Sinon, on passe à l'étape 202. Si lors de l'étape 206, le serveur 106 constate que le montant du nouvel ordre d'enchère est strictement supérieur à l'enchère courante M, alors le serveur déclenche la temporisation de durée D lors d'une étape 208 et fixe la valeur du montant courant M de l'enchère au montant du nouvel ordre d'enchère. Il initialise alors également une variable Donnée_enchère. Cette variable Donnée_enchère garde en mémoire les identifiants de tous les enchérisseurs qui ont placé un ordre d'enchère dont le montant est égal à m, c'est à dire au plus grand montant de tous les ordres d'enchère reçus. Lors d'une étape 210 faisant suite à l'étape 208, le serveur 106 émet vers tous les terminaux 1001, ... , 100r les informations mises à jour concernant l'enchère. Ces informations comportent entre autres le montant courant M de l'enchère, et éventuellement l'identifiant de l'utilisateur dont l'ordre d'enchère est temporairement sélectionné. Après l'étape 210, on retourne à l'étape 202. Lors de l'étape 206, si le serveur 106 constate que le montant du nouvel ordre d'enchère est égal à l'enchère courante M, il met alors à jour dans une étape 212, la variable Donnée_enchère en ajoutant l'identifiant de l'utilisateur qui vient de placer le nouvel ordre d'enchère. On passe ensuite à l'étape 210. Si lors de l'étape 206, le serveur 106 constate que le montant du 35 nouvel ordre d'enchère est strictement inférieur au montant M de l'enchère courante, on retourne à l'étape 202. Si l'ordre d'enchère n'a pas été validé lors de l'étape 204, on retourne à l'étape 202. Si lors de l'étape 202, la temporisation du serveur 106 correspondant à la durée D est écoulée, il choisit alors de manière aléatoire au cours d'une étape 214, l'un des utilisateurs dont l'identifiant est stocké dans la variable Donnée_enchère, c'est à dire l'un des utilisateurs ayant émis un ordre d'enchère de montant M, reçu pendant la période de temporisation D. Dans la pratique, cette sélection aléatoire est mise en oeuvre grâce à des moyens de sélection pseudo-aléatoires classiques. On passe ensuite à l'étape 210. Si lors de l'étape 202, le serveur 106 détecte que la temporisation relative à la variable DE est écoulée, il émet alors vers tous les terminaux, lors d'une étape 216, les informations finales concernant l'enchère et clôt la vente aux enchères. Ces informations comportent entre autres l'identifiant du vainqueur ainsi que le montant de l'enchère finale. La figure 3 représente un exemple de vente aux enchères utilisant le procédé précédemment décrit et au cours de laquelle deux enchérisseurs 102; 15 et 102 émettent des ordres d'enchère sur un même objet. Les deux enchérisseurs 102; et 102 suivent l'enchère en temps réel à l'aide des deux terminaux 100; et 100. Les terminaux 100; et 100 étant distants du serveur 106, il existe un délai variable de transmission des informations vers le serveur 106 et notamment des ordres d'enchère. L'instant auquel un utilisateur place son ordre d'enchère est donc distinct de l'instant auquel le serveur 106 reçoit cet ordre d'enchère. Le délai entre ces deux instants peut varier au cours du temps en fonction de l'encombrement du réseau et varie également en fonction du débit de connexion de chaque utilisateur. Soit Mil le montant d'un premier ordre d'enchère émis par l'utilisateur 102; à un instant t. Le serveur d'enchères 106 reçoit cet ordre d'enchère à l'instant t'1. Selon le procédé précédemment décrit, le serveur 106 déclenche alors la temporisation de durée D à l'instant Lorsque la temporisation est écoulée, et en l'absence d'autres ordres d'enchère reçus par le serveur d'enchères 106 au cours de cette durée D, le serveur 106 sélectionne, à l'instant t"I, l'ordre d'enchère de l'enchérisseur 102; pour un montant Mil L'instant t"l est égal à t'1+D. Le serveur 106 reçoit ensuite à l'instant t'2 un ordre d'enchère de montant Mil émis à l'instant t2 par l'utilisateur 102j, Mil étant strictement supérieur à mil. Ensuite, le serveur 106 attribue l'enchère à l'utilisateur 102 à l'instant t"2=t'2+D. A l'instant t3, l'enchérisseur 102; émet un ordre d'enchère de montant M; 2. Cet ordre d'enchère sera reçu par le serveur 106 à l'instant t'3. L'enchérisseur 102 émet ensuite un ordre d'enchère de montant Mj2 égal à M;2 à l'instant t4 supérieur à t3. Cet ordre d'enchère est reçu par le serveur 106 à l'instant t'4 inférieur à l'instant t'3 ce qui déclenche la temporisation de durée D. Il s'agit donc du cas de figure dans lequel deux ordres d'enchère de montants identiques ont été placés par deux enchérisseurs, et dans lequel l'ordre de réception par le serveur S des deux ordres d'enchère est l'ordre inverse de l'ordre réel d'émission par les deux utilisateurs 102; et 102. Selon le procédé décrit précédemment, a l'issue de la temporisation de durée D, c'est-à-dire à l'instant t"4, le serveur 106 détermine de manière aléatoire lequel des deux utilisateurs 102; et 102 se verra attribuer l'enchère au montant Mj2= La figure 4 décrit la manière dont sont sécurisés les échanges entre le serveur d'enchères 106 et les terminaux 1001, ... , 100r des utilisateurs. Le serveur est géré par un tiers de confiance et possède une paire de clés asymétriques PK et SK dans laquelle PK est une clé publique et SK est une clé privée qu'il garde secrète et qui lui permet de déchiffrer les messages chiffrés avec PK. Tous les terminaux 1001, .. 100r participant à une vente aux enchères ont donc connaissance de la clé PK. Le serveur possède également une clé maîtresse MK qu'il garde 20 secrète. Lors d'une étape 400, le tiers de confiance génère pour chaque utilisateur les identifiants Id1, Id 2, ..., Id r ainsi qu'une clé secrète KI, K2, ..., Kr. Les clés secrètes KI, K2, ..., Kr dérivent de la clé maîtresse MK et des identifiants Id1, Id2, ..., Id r à l'aide d'une fonction F (par exemple la fonction SHA) : K; =F(MK, Id;). Ces identifiants Id1, Id2, ..., Idr ainsi que ces clés KI, K2, ..., Kr sont ensuite envoyés par le serveur 106 à chaque terminal 1001, ... , 100r concerné. Lors d'une étape 402, les terminaux reçoivent et stockent les identifiants Id1, Id2, ..., ldr ainsi que les clés KI, K2, ..., Kr dans les zones mémoires 1081, 1082, ..., 108r. La vente aux enchères débute par une étape 404 lors de laquelle le serveur génère un message contenant le montant courant M de l'objet mis en vente aux enchères ainsi que son identifiant Oid. Ce message est signé électroniquement par le serveur d'enchères à l'aide de sa clé privée SK. Ce message est ensuite émis à tous les terminaux des utilisateurs participant à l'enchère relative à l'objet mis en vente. Après réception de ce message, chaque terminal vérifie la signature dans une étape 406 en utilisant la clé publique PK. Si un utilisateur 102; désire enchérir, il crée, lors d'une étape 408, un message contenant entre autres un montant M' de son nouvel ordre d'enchère, son propre identifiant Id;, ainsi que l'identifiant O,d de l'objet mis en vente. Un code d'authentification de message est généré à l'aide de ces trois informations et de la clé secrète K; qu'il possède: MACK;(O;d,M',Id;). Ce code d'authentification de message est un sceau électronique produit par un algorithme utilisant la clé secrète dérivée K; et permettant de garantir l'intégrité du message à l'arrivée. Toutes ces informations sont ensuite envoyées au serveur 106. Lors d'une étape 410, le serveur 106, à l'aide de l'identifiant Id; de l'utilisateur ayant enchéri, génère la clé secrète K; de l'utilisateur ainsi que le code d'authentification de message. La comparaison du code d'authentification ainsi obtenu avec le code d'authentification reçu lui permet de valider ou non l'ordre d'enchère de 15 l'utilisateur 102;. Lors d'une étape 412, le serveur d'enchère 106 met à jour les informations concernant l'enchère courante en suivant le procédé de l'invention. On passe ensuite de nouveau à l'étape 404. Il apparaît clairement que le procédé décrit précédemment permet un 20 traitement égal des ordres d'enchère reçus, quel que soit le type de connexion des utilisateurs. On notera que l'invention n'est pas limitée à l'exemple de système d'enchères qui a été décrit, en particulier en liaison avec la figure 3, et dans lequel les enchérisseurs font augmenter le prix de l'objet mis en vente. L'invention s'applique également à un système dans lequel c'est le serveur qui fait augmenter le prix de l'objet mis en vente. Le serveur fixe au départ un prix comme dans l'exemple précédent. Les enchérisseurs qui acceptent le prix répondent alors et une temporisation est déclenchée lorsque le serveur reçoit la première acceptation du prix d'un enchérisseur. Le serveur sélectionne ensuite aléatoirement un enchérisseur ayant accepté le prix parmi les réponses reçues pendant la durée de temporisation, puis fixe un nouveaux prix plus élevé, et ce jusqu'à ce qu'il ne reçoive aucune réponse d'acceptation du nouveau prix auquel cas il attribue le bien mis en vente au dernier enchérisseur sélectionné aléatoirement. L'invention s'applique aussi à un autre système d'enchères dans lequel le serveur propose initialement une mise à prix élevée et attend, pendant une durée prédéterminée qu'au moins un enchérisseur accepte cette offre. Lorsqu'il reçoit une acceptation d'un enchérisseur, le serveur déclenche une temporisation puis il sélectionne aléatoirement un enchérisseur ayant accepté le prix parmi ceux ayant répondu pendant la durée de temporisation. Si le serveur ne reçoit aucune réponse pendant la durée prédéterminée, il baisse le prix et ce jusqu'à ce qu'un enchérisseur au moins accepte le prix ou bien jusqu'à la fin de l'enchère si personne n'accepte le prix le plus bas proposé par le serveur. REVENDICATIONS 1. Procédé de traitement d'enchères en ligne en temps réel mis en oeuvre par 5 un serveur d'enchère, comportant les étapes suivantes: réception (202) d'ordres d'enchère relatifs à un bien ou service mis en vente aux enchères, chaque ordre d'enchère étant associé à un montant; - sélection (214) d'un ordre d'enchère, parmi les ordres d'enchère reçus dont le montant est égal au montant le plus élevé de tous les ordres d'enchère reçus; caractérisé en ce que: une temporisation est déclenchée (208) chaque fois que le serveur reçoit un ordre d'enchère d'un montant strictement supérieur au montant le plus élevé de tous les ordres d'enchère reçus précédemment et relatifs audit bien ou service; - le serveur mémorise les ordres d'enchères susceptibles d'être reçus pendant la durée de temporisation et ayant un montant égal au montant de l'ordre ayant déclenché la temporisation; et - lors de l'étape de sélection, le serveur sélectionne (214) aléatoirement un 20 ordre d'enchère parmi ceux reçus pendant la durée de temporisation. 2. Procédé de traitement d'enchères selon la revendication 1, dans lequel la mise en vente dudit bien ou service est clôturée à la fin d'une durée de vente prédéterminée, cette durée étant mesurée à partir de la réception du premier ordre d'enchère, le bien ou service mis en vente étant alors attribué à l'émetteur du dernier ordre d'enchère sélectionné aléatoirement. 3. Procédé de traitement d'enchères selon la revendication 1, dans lequel la mise en vente dudit bien ou service est clôturée (216) à la fin d'une durée de vente prédéterminée, cette durée étant mesurée à partir de la réception du dernier ordre d'enchère, le bien ou service mis en vente étant alors attribué à l'émetteur du dernier ordre d'enchère sélectionné aléatoirement. 4. Procédé de traitement d'enchères selon l'une quelconque des revendications 1 à 3, dans lequel la validité des ordres d'enchère est assurée par une méthode de signature des ordres d'enchère utilisant un code d'authentification de message. 5. Procédé de traitement d'enchères en ligne en temps réel mis en oeuvre par un serveur d'enchère, comportant les étapes suivantes: (a) fixation par le serveur (106) d'un montant associé à un bien ou service mis en vente aux enchères; (b) réception d'ordres d'enchères relatifs à ce bien ou service pour un montant correspondant au montant fixé par le serveur; (c) sélection d'un ordre d'enchère parmi les ordres d'enchères reçus puis retour à l'étape (a) pour la fixation d'un montant plus élevé associé au bien ou service mis en vente; caractérisé en ce que: - une temporisation est déclenchée chaque fois que le serveur reçoit un premier ordre d'enchère associé au montant fixé par le serveur; - le serveur mémorise les ordres d'enchères susceptibles d'être reçus pendant la durée de temporisation et ayant un montant égal au montant de l'ordre ayant déclenché la temporisation; et - lors de l'étape de sélection, le serveur sélectionne aléatoirement un ordre d'enchère parmi ceux reçus pendant la durée de temporisation. 6. Procédé de traitement d'enchères selon la revendication 5, dans lequel la mise en vente dudit bien ou service est clôturée lorsque aucun ordre d'enchère n'est reçu par le serveur suite à la fixation d'un nouveau montant plus élevé, le bien ou service mis en vente étant alors attribué à l'émetteur du dernier ordre d'enchère sélectionné aléatoirement. 7. Procédé de traitement d'enchères en ligne en temps réel mis en oeuvre par un serveur d'enchère, comportant les étapes suivantes: (a) fixation par le serveur (106) d'un montant associé à un bien ou service mis en vente aux enchères; (b) attente par le serveur d'une réception d'un ordre d'enchère relatif à ce bien ou service pour un montant correspondant au montant fixé par le serveur, et - si aucun ordre d'enchère n'est reçu pendant une durée prédéterminée, alors retour à l'étape (a) pour la fixation d'un montant moins élevé associé au bien ou service mis en vente, sinon, sélection d'un ordre d'enchère parmi les ordres d'enchères reçus; caractérisé en ce que: - une temporisation est déclenchée chaque fois que le serveur reçoit un premier ordre d'enchère associé au montant fixé par le serveur; - le serveur mémorise les ordres d'enchères susceptibles d'être reçus pendant la durée de temporisation et ayant un montant égal au montant de l'ordre ayant déclenché la temporisation; et - lors de l'étape de sélection, on sélectionne aléatoirement un ordre d'enchère parmi ceux reçus pendant la durée de temporisation.