Brevet FR2895111A1 — publié le 20070622

DIFFUSION DE DONNEES PAR GROUPEMENT La presente invention se rapporte au domaine des transmissions de donnees depuis un serveur vers un poste distant. Elie concerne plus particulierement une telle transmission dans le cas d'un volume de donnees important qui necessite des actualisations. Ce type de transmission est par exemple courant dans le domaine des outils informatiques boursiers. Dans ce domaine, des serveurs de diffusion transmettent regulierement les donnees d'actualisation revues par la ou les bourses, et doivent transmettre ces donnees afin que les clients du serveur puissent reagir aux actualisations boursieres. Or, aujourd'hui, le volume d'information a transmettre aux clients dans le domaine de la bourse est si important qu'il est avantageux de realiser ces transmissions de facon efficace. Dans le domaine des bases de donnees, une telle problematique de transmission d'un grand volume d'information peut se poser. Or, les bases de donnees utilisent classiquement un stockage persistant des donnees, c'est-a-dire que lorsque la valeur d'une donnee est actualisee au temps T, sa valeur au temps T-1 n'est pas perdue et reste stockee dans la base. Ce type de stockage persistant permet en pairticulier de detecter facilement si la valeur d'une donnee a ete actualisee ou non en comparant ses valeurs au temps T et au temps T-1 dans la base. Si ces deux valeurs sont differentes, on peut transmettre la nouvelle valeur aux clients distants pour actualisation. Au contraire, dans le domaine boursier, les donnees sont stockees au niveau d'un serveur de diffusion de facon non persistante, c'est-a- dire que lorsque la valeur d'une donnee est actualisee, sa valeur precedente est effacee de la base. II n'est donc pas possible de detecter les actualisations par simple comparaison entre les valeurs des donnees a deux instants distincts. Afin de transmettre les actualisations des donnees d'un serveur de diffusion, une solution connue consiste a transmettre I'ensemble du contenu du serveur, soit regulierement, soit sur requete du client distant. Cependant, cette solution n'est pas efficace puisque dans ('ensemble des donnees transmises, certaines n'ont pas ete actualisees et ne necessitent pas a priori une nouvelle transmission. Dans le cas d'un volume important de donnees, ce manque d'efficacite pose bien sur des difficultes en terme de bande passante et de temps d'envoi. L'actualisation des donnees etant une problematique particulierement importante dans le domaine de la bourse, it est donc avantageux d'ameliorer I'efficacite des transmissions de donnees depuis un serveur de donnees realisant un stockage non persistant des donnees vers un client distant. A cet effet, la presente invention a pour objet un procede de gestion de donnees a ('aide d'un serveur de diffusion (2) de donnees retie a une station distante (3), ledit serveur de diffusion (2) comprenant un premier ensemble de donnees (Dt), chacune desdites donnees etant associee a un identifiant de donnees (AA, FZ, TA, ZZ) et a au moins un attribut (AT), ledit procede comprenant : une etape d'envoi consistant a o regrouper (10) les donnees dudit premier ensemble de donnees (Dt) en au moins un groupe de donnees (GR1, GRN) en fonction dudit identifiant (AA,, FZ, TA, ZZ) de donnees de chacune desdites donnees dudit premier ensemble de donnees (Dt); o calculer (20), pour chacun desdits au moins un groupe de donnees (GR1,GRN), un identifiant de groupe (lDtl, IDtN), en fonction dudit au moins un attribut (AT) de chacune desdites donnees regroupees au sein dudit groupe de donnees; o transmettre (30) les donnees de chacun desdits groupes de donnees ainsi que chacun desdits identifiants de groupe (IDt1, IDtN) a ladite station distante (3); une etape d'actualisation consistant a : o recevoir (40) un second ensemble de donnees (DO d'actualisation dudit premier ensemble de donnees (Dt) au niveau dudit serveur de diffusion (2), chacune desdites donnees d'actualisation (DO etant associee a un identifiant de donnees (AA, FZ, TA, ZZ) et a au moins un attribut (AT'); o regrouper (50) les donnees dudit second ensemble (Dr) de donnees d'actualisation dans ledit au moins un groupe de donnees (GR1,GRN) en fonction dudit identifiant de donnees (AA, FZ, TA, ZZ) de chacune desdites donnees dudit second ensemble (Dv); o calculer (60), pour chacun desdits au moins un groupe de donnees (GRI,GRN), un identifiant actualise de groupe (lDt'l, IDt'N), en fonction dudit au moins un attribut (AT') de chacune desdites donnees d'actualisation (Dv) regroupees au sein dudit groupe de donnees (GR1,GRN); 30 - une etape de comparaison comprenant les sous-etapes de : o transmission (70) par ladite station distante (3) vers ledit serveur de diffusion (2), de chacun desdits identifiant de groupe de donnees rebus (IDt1, IDtN) par ladite station 35 distante a ladite etape d'envoi; 10 15 20 25 o comparaison par ledit serveur de diffusion (2), pour chaque groupe de donnees (GR1,GRN), dudit identifiant de groupe de donnees (IDt1, IDtN) associe audit groupe de donnees (GR1,GRN), avec (edit identifiant actualise de groupe de donnees (IDt'1, IDt.N), associe audit groupe de donnees (GR1,GRN); o transmission (80) par ledit serveur de diffusion (2) a ladite station distante (3) du contenu du groupe de donnees (GRp, GRq, GRr) pour Iequel I'identifiant de groupe de donnees (IDtp, IDtq, IDtr) est different de I'identifiant de groupe de donnees actualisees (IDt'p, IDt'q, IDt'r). De la sorte, grace au regroupement des donnees en groupes de donnees, et a la seule comparaison entre les identifiants de groupes, 15 seul le contenu des groupes qui ont ete modifies par une actualisation est envoye a la station distante. Ce procede permet donc de s'affranchir de ('envoi du contenu des groupes de donnees qui n'ont pas ete modifies et donc de 20 diminuer le volume de donnees transmis, tout en transmettant les informations pertinentes d'actualisation. Dans le domaine boursier, les donnees transmises par le procede sont par exemple des valeurs boursieres, identifiees par un 25 code lexicographique, pouvant prendre des valeurs allant par exemple de AA a ZZ. Dans ce cas, on forme de preference les groupes selon un ordre lexicographique en regroupant les valeurs selon ce code 30 lexicographique, avec par exemple un premier groupe de valeurs dont le code va de AA a GZ, un second groupe de valeurs dont le code va de HA a MZ, un troisieme groupe de valeurs dont le code va de NA a TZ, et un quatrieme groupe de valeurs dont le code va de UA a ZZ. II est cependant entendu que la repartition des valeurs peut etre 10 realisee par d'autres moyens de regroupement reproductible, autre qu'un simple tri lexicographique On calcule alors pour chacun des groupes precedemment definis, un identifiant du groupe correspondant a une cle calculee a partir des attributs de ['ensemble des valeurs boursieres du groupe. Le contenu de chaque groupe ainsi que les identifiants associes de chaque groupe sont alors envoyes a la station distante. Lorsque la station distante requiert une actualisation des donnees, par exemple au moment de sa connexion au serveur de diffusion, elle envoie ('ensemble des identifiants de chacun des groupes telles qu'elle les a dernierement recus. Le serveur procede alors a une comparaison entre les identifiants recus de la station distante et les identifiants de groupe eventuellement actualises si des donnees d'actualisation ont modifie le contenu des differents groupes. Le serveur n'envoie alors que le contenu des groupes pour lesquels les identifiants de groupe ont ete modifies par I'actualisation des donnees. II envoie egalement les des des groupes qui ont ete actualises afin que le procede puisse titre itere tors d'une nouvelle requete par la station distante. D'autres buts et avantages apparaltront a la lumiere de la description et des dessins annexes clans lesquels : La FIG. 1 represente un exemple d'une etape d'envoi selon I'invention ; La FIG. 2 represente un exemple d'une etape de transmission selon I'invention ; La FIG. 3 represente un exemple d'une etape de comparaison selon I'invention. Illustre FIG. 1, un serveur de diffusion 2 comprend une base de donnees de valeurs a I'instant t, Dt. Au sein de cette base, ces valeurs peuvent titre representees sous la forme d'un code unique correspondant a la valeur, et d'une pluralite d'informations sur la valeur. Aux fins de la presente description, le terme valeur peut designer toute donnee decrite par une pluralite d'attribut dans un domaine particulier. A titre d'exemple, dans le domaine de la bourse, une valeur correspond a un instrument boursier, comme le nom d'une entreprise cotee en bourse. Le code unique de cet instrument boursier est alors par exemple un code a deux chiffres designant cet instrument. De facon classique, on utilise par exemple les lettres AC pour designer la societe Accor . Les informations sur la valeur sont les attributs statiques de la donnee de valeur qui definissent la valeur, en outre du code unique. Dans le domaine boursier, ces informations sont par exemple le code ISIN, le groupe de cotation ou le libelle. Pour les options, ce peut titre les donnees support, echeance, sens ou strike. Pour les strategies, on peut ajouter Ies composantes de la strategie, et pour les indices, on peut ajouter les composantes de I'indice et leur poids dans I'indice. Lorsqu'un attribut d'une valeur n'est pas renseigne, on pourra lui attribuer la valeur numerique 0 ou le caractere lexicographique espace aux fins des differents calculs sur les attributs. Les differents evenements pouvant se produire sur une valeur sont les suivants : - creation d'une valeur suppression d'une valeur modification de ('identifiant d'une valeur (correspondant en fait a une double etape de suppression de la valeur et de creation d'une nouvelle valeur) modification d'au moins une information sur la valeur. Selon I'invention, on regroupe 10 Ies donnees de la base de donnees de valeurs du serveur de diffusion 2 en une pluralite de groupes de donnees GR1, ..., GRN, en fonction du code unique associe aux valeurs. Comme illustre FIG. 1, clans le cas d'une identification lexicographique des valeurs, ce regroupement peut se faire de fagon lexicographique. II est entendu que I'invention ne se limite pas au regroupement lexicographique et que tout type de groupement adapte au type de codage de la valeur peut titre utilise. Sur la FIG. 1, on regroupe donc toutes les valeurs ayant un code lexicographique compris entre AA et FZ dans le groupe GR1, et ce jusqu'au dernier groupe comprenant les valeurs ayant un code lexicographique compris entre TA et ZZ. II est ent:endu que I'on peut adapter le nombre de groupe et donc le decoupage lexicographique aux contraintes de transmissions de donnees. Pour chaque groupe, on calcule ensuite 20, un identifiant de groupe au temps t, IDt1, IDt2, ..., IDtN. Ces identifiants de groupe sont calcules a partir des attributs AT des valeurs dans chaque groupe. Cet identifiant correspond par exemple a une de de hashage sur I'ensemble des attributs de la valeur. Si un attribut n'est pas renseigne pour une valeur, le calcul de I'identifiant prend en compte I'attribut par defaut 0 ou espace tel que defini precedemment. Une fois ces identifiants calcules, on transmet 30 a un poste client 3, I'ensemble des groupes GR1, ..., GRN correspondant aux donnees Dt au temps t, ainsi que I'ensemble des identifiants IDt1... ,IDtN. Cette etape de transmission correspond en fait a une etape d'envoi initial du procede dans Iequel on transmet ('ensemble des donnees de la base de donnees de diffusion au client. Ce n'est que dans cette etape prealable que toutes les donnees sont transrnises au client 3. Illustre maintenant FIG. 2, les donnees du serveur de diffusion sont actualisees 40 par reception de donnees issues de la bourse 1. Au temps t', le contenu de la base de donnees du serveur de diffusion est donc maintenant Di. On procede alors au sein du serveur de diffusion 2, a ('actualisation 50 des informations des valeurs au sein des groupes GR1, . , GRN. Comme on I'a vu precedemment, cette actualisation peut correspondre a une suppression de valeur, a une modification de valeur, a une insertion de valeur, ou a une modification des attributs d'une valeur. Sur ces donnees actualisees et regroupees dans les groupes GR1, ., GRN, on recalcule les N identifiants de groupe correspond aux attributs actualises au temps t'. On obtient donc 60, des identifiants IDt'1,...,IDt,N...DTD: Illustre maintenant FIG. 3, lorsque le client 3 fait une requete afin d'obtenir du serveur de diffusion des donnees actualisee, it joint 70 a sa requete la liste des identifiants dernierement recus, ici les identifiants IDt1, IDt2, .., IDtN. Dans ce cas, on fournit au client un logiciel apte a realiser cette transmission d'identifiants de facon transparente, en plus de la requete de donnees. L'homme du metier est apte a realiser un tel programme logiciel realisant les fonctions telles que precedemment decrites. A reception des identifiants IDt1, IDt2, .., IDtN, le serveur de diffusion compare ces identifiants de groupe, avec les identifiants de groupe eventuellement actualises, IDc1, ... , IDt'N.35 Si les deux listes d'identifiants de groupe sont identiques, c'est que le contenu de tous les groupes n'a pas ete modifie. Dans ce cas, on peut soit ne rien envoyer au client 3, soit envoyer un message d'acquittement d'actualisation, sans transmettre de donnees contenues dans les groupes GR1, ..., GRN. Si les deux listes sont differentes, le contenu d'au moins un des groupes de donnees a ete modifie entre le temps t et le temps t'. Les donnees ont donc reellement ete actualisees, et Dt est different de Dt'. Selon I'invention, le serveur de diffusion ne transmet au client que le contenu des groupes pour lesquels les identifiants de groupe ont ete modifies. Ainsi, si par exemple on a seulement IDtp≠ IDt'p, IDtq# IDt,q et IDtr≠ IDt,r, alors seuls les contenus des groupes GRp, GRq, et GRr, seront transmis 80 au client. Encore une fois, I'homme du metier pourra implementer facilement un programme realisant les etapes de comparaison et d'envoi selectif selon ('invention, au niveau du serveur de diffusion 2. De la sorte, on economise ('envoi de donnees qui n'ont pas reellement ete actualisees par la bourse, ce qui diminue la quantite de donnees transmises entre le serveur de diffusion 2 et le client 3. Le nombre de groupes peut par exemple etre choisi en fonction de la frequence de ('actualisation des attributs et de la frequence des requetes des clients. Le nombre de groupes est alors ajuste en fonction d'analyses statistiques des flux de production. REVENDICATIONS 1. Procede de gestion de donnees a ('aide d'un serveur de diffusion (2) retie a une station distante (3), ledit serveur de diffusion (2) comprenant un premier ensemble de donnees (Dt), chacune desdites donnees etant associee a un identifiant de donnees (AA, FZ, TA, ZZ) et a au moins un attribut (AT), ledit procede comprenant : une etape d'envoi consistant a o regrouper (10) les donnees dudit premier ensemble de donnees (Dt) en au moins un groupe de donnees (GR1, GRN) en fonction dudit identifiant (AA, FZ, TA, ZZ) de donnees de chacune desdites donnees dudit premier ensemble de donnees (Dt); o calculer (20), pour chacun desdits au moins un groupe de donnees (GR1,GRN), un identifiant de groupe (IDt1, IDtN), en fonction dudit au moins un attribut (AT) de chacune desdites donnees regroupees au sein dudit groupe de donnees; o transmettre (30) les donnees de chacun desdits groupes de donnees ainsi que chacun desdits identifiants de groupe (IDt1, IDtN) a ladite station distante (3); une etape d'actualisation consistant a o recevoir (40) un second ensemble de donnees (Dt') d'actualisation dudit premier ensemble de donnees (Dt) au niveau dudit serveur de diffusion (2), chacune desdites donnees d'actualisation (Dv) etant associee a un identifiant de donnees (AA, FZ, TA, ZZ) et a au moins un attribut (AT'); o regrouper (50) les donnees dudit second ensemble (Dt') de donnees d'actualisation dans ledit au moins un groupe de donnees (GR1,GRN) en fonction dudit identifiant de donnees (AA, FZ, TA, ZZ) de chacune desdites donnees dudit second ensemble (Dr);o calculer (60), pour chacun desdits au moins un groupe de donnees (GR1,GRN), un identifiant actualise de groupe (IDt'l, IDt'N), en fonction dudit au moins un attribut (AT') de chacune desdites donnees d'actualisation (Dv) regroupees au sein dudit groupe de donnees (GR1,GRN); une etape de comparaison comprenant les sous-etapes de : o transmission (70) par ladite station distante (3) vers ledit serveur de diffusion (2), de chacun desdits identifiant de groupe de donnees rebus (IDt1, IDtN) par ladite station distante a ladite etape d'envoi; o comparaison par ledit serveur de diffusion (2), pour chaque groupe de donnees (GRI,GRN), dudit identifiant de groupe de donnees (IDt1, IDtN) associe audit groupe de donnees (GR1,GRN), avec ledit identifiant actualise de groupe de donnees (IDt'l, IDt'N), associe audit groupe de donnees (GR1,GRN); o transmission (80) par ledit serveur de diffusion (2) a ladite station distante (3) du contenu du groupe de donnees (GRp, GRq, GRr) pour lequel I'identifiant de groupe de donnees (IDtp, IDtq, IDtr) est different de I'identifiant de groupe de donnees actualisees (IDt,p, IDt,q, IDt'r).25