Procédé de traitement d'ensembles de données de description de contenus multimédia avec mise à jour, utilisation de ce procédé et programme d'ordinateur correspondant
La présente invention concerne un procédé de traitement d'ensembles de données de description de contenus multimédia, pour la fourniture d'au moins un ensemble de sortie à partir d'au moins un ensemble d'entrée. L'invention concerne également l'utilisation d'un tel procédé et un programme d'ordinateur correspondant. On connaît des procédés de génération d'ensembles de données de description de contenus multimédia, notamment selon le standard DVB (de l'anglais "Digital Video Broadcast"). Une fois générés, ces ensembles sont destinés à être transmis à des moyens de stockage distants sous forme de fichiers, ou bien tout simplement à être diffusés avec les contenus multimédia auxquels ils sont associés. Cependant, la taille de ces ensembles de données ne peut pas être modifiée une fois que ceux-ci sont générés, notamment pour répondre à des contraintes du réseau de diffusion, ou des contraintes des moyens de stockage distants. Autrement dit, une fois que l'ensemble de données de description est généré par l'opérateur de service ou de réseau, il est transmis à destination des récepteurs sans pouvoir être modifié dynamiquement. Sur un réseau de diffusion DVB, dans le cadre d'un transfert de données MPEG2, le débit instantané disponible est élevé et constant, ce qui permet de transmettre aisément ces ensembles de données de description. Par contre, sur un réseau de type Internet, pour lequel la qualité de service est variable, la transmission de ces ensembles de données peut poser des problèmes, lorsqu'ils sont trop volumineux. En conclusions, ce qui ne pose pas de problème en diffusion classique devient problématique dans le contexte d'Internet.
L'invention vise à remédier à cet inconvénient en fournissant un procédé de traitement d'ensembles de données de description permettant de prendre en compte des contraintes de débit du réseau de diffusion des ensembles de données, lors de la génération de ces ensembles de données.
L'invention a donc pour objet un procédé de traitement d'ensembles de données de description de contenus multimédia, pour la fourniture d'au moins un ensemble de sortie à partir d'au moins un ensemble d'entrée, caractérisé en ce qu'il comporte les étapes suivantes : - on affecte des coefficients de priorité à au moins une partie des données de description de l'ensemble d'entrée ;
- on associe à chaque ensemble de sortie, au moins un seuil de coefficients de priorité ;
- on répartit les données dans au moins un ensemble de sortie intermédiaire en fonction des coefficients de priorité affectés aux éléments de l'ensemble d'entrée et du seuil associé à chaque ensemble de sortie ;
- on modifie le seuil associé à chaque ensemble de sortie en calculant au moins un nouveau seuil en fonction d'une liste de débits disponibles et de la taille de chaque ensemble de sortie intermédiaire ;
- on exécute de nouveau les étapes de répartition des données et de modification de seuils tant que la taille dudit ensemble de sortie intermédiaire n'est pas adaptée aux débits disponibles selon un critère prédéterminé ; et - on fournit ledit ensemble de sortie intermédiaire en tant qu'ensemble de sortie, lorsque sa taille est adaptée aux débits disponibles.
Ainsi, en fonction des coefficients de priorité affectés à chacune des données de description, celles-ci sont réparties dans un ou plusieurs ensembles de sortie. La modification du ou des seuils de coefficients de priorité permet de réguler la taille du ou des ensembles de sortie en fonction de contraintes du réseau pour parvenir à un destinataire.
Un procédé de traitement d'ensembles de données selon l'invention peut en outre comporter les caractéristiques suivantes :
- on modifie le seuil de façon périodique ; - le procédé comporte en outre une étape de transmission d'au moins un ensemble de sortie vers un destinataire en fonction des capacités de moyens de transmission des données de description vers le destinataire ;
- le procédé comporte en outre une étape de transmission d'au moins un ensemble de sortie vers un destinataire en fonction des capacités de moyens de stockage du destinataire ;
- le procédé comporte en outre une étape de transmission d'au moins un ensemble de sortie vers un destinataire en fonction d'un niveau de souscription de l'usager à un service prédéterminé ;
- le procédé comporte en outre une étape de transmission d'au moins un ensemble de sortie vers un destinataire en fonction d'un paiement effectué préalablement pour l'accès à cet ensemble de sortie. L'invention a également pour objet un procédé de traitement d'ensembles de données tel que décrit précédemment, pour la fourniture d'au moins un ensemble de sortie à partir d'une pluralité d'ensembles d'entrée.
L'invention a également pour objet l'utilisation d'un procédé de traitement d'ensembles de données de description tel que défini précédemment, pour le traitement d'un fichier de données XML.
L'invention a également pour objet un programme d'ordinateur adapté pour le traitement d'ensembles de données de description de contenus multimédia, pour la fourniture d'au moins un ensemble de sortie à partir d'au moins un ensemble d'entrée, caractérisé en ce qu'il comporte :
- des moyens de lecture d'un ensemble de coefficients de priorité affectés à au moins une partie des données de description de l'ensemble d'entrée ; - des moyens de lecture d'au moins un seuil de coefficients de priorité associé à chaque ensemble de sortie ;
- des moyens de répartition des données dans au moins un ensemble de sortie intermédiaire en fonction des coefficients de priorité affectés aux éléments de l'ensemble d'entrée et du seuil associé à chaque ensemble de sortie ;
- des moyens de modification du seuil associé à chaque ensemble de sortie par le calcul d'au moins un nouveau seuil en fonction d'une liste de débits disponibles et de la taille de chaque ensemble de sortie intermédiaire, pour l'adaptation de la taille dudit ensemble de sortie intermédiaire aux débits disponibles ; et
- des moyens de fourniture de cet ensemble de sortie intermédiaire en tant qu'ensemble de sortie, lorsque sa taille est adaptée aux débits disponibles.
Enfin, l'invention a également pour objet un programme d'ordinateur tel que décrit précédemment, pour la fourniture d'au moins un ensemble de sortie à partir d'une pluralité d'ensembles d'entrée.
L'invention sera mieux comprise à l'aide de la description qui va 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 la structure d'un système de mise en œuvre d'un procédé de traitement d'ensembles de données selon un premier mode de réalisation de l'invention ;
- les figures 2 et 3 représentent les étapes successives d'un procédé selon l'invention ;
- la figure 4 est un diagramme représentant l'évolution de seuils mis à jour selon le procédé de la figure 3 ;
- la figure 5 représente schématiquement la structure d'un système de mise en œuvre d'un procédé de traitement d'ensembles de données selon un second mode de réalisation de l'invention ;
- la figure 6 illustre symboliquement des fichiers de sortie fournis par un procédé selon une première variante de l'invention ;
- la figure 7 illustre symboliquement des fichiers de sortie fournis par un procédé selon une seconde variante de l'invention ;
- la figure 8 représente schématiquement la structure générale d'un premier système permettant l'utilisation d'un procédé selon l'invention ; et - la figure 9 représente schématiquement la structure générale d'un second système permettant l'utilisation d'un procédé selon l'invention.
Le système représenté sur la figure 1 comporte un ensemble 10 de données XML
(de l'Anglais « eXtended Markup Language ») d'entrée destiné à être traité par un filtre
12, pour la fourniture en sortie du filtre d'une pluralité d'ensembles de sortie 141 ( 142, ..., 14n, chacun de ces ensembles de sortie comportant une partie des données XML contenues dans l'ensemble 10.
On notera que les données XML ne constituent qu'un exemple de données de description et que l'invention peut également s'appliquer à des données de description conformes à un autre standard. Le filtre 12 est par exemple un programme exécutable stocké par un microordinateur (non représenté).
Le filtre 12 est adapté pour recevoir en entrée un fichier 16 de coefficients de priorité associés à chacune des données de description de l'ensemble 10 de données XML. Chaque donnée XML est soit un élément délimité par une balise ouvrante et une balise fermante de même nom dans l'ensemble de données XML 10, soit un attribut rattaché à un élément. Le fichier 16 associe alors à chaque donnée XML un coefficient de priorité.
Le filtre 12 est également adapté pour recevoir en entrée un fichier 18 comportant des seuils de coefficients de priorité, ces seuils étant associés respectivement aux ensembles 14ι, 142, ..., 14π. Dans un mode de réalisation préféré, on affecte aux données des coefficients de priorité d'autant plus élevés que les données associées à ces coefficients sont de priorité faible. Ainsi, on affecte un coefficient de priorité égal à zéro, pour les données de description les plus importantes, c'est-à-dire celles qui doivent être contenues dans tous les ensembles de sortie 14ι, 142, ..., 14n. On affecte ensuite des coefficients strictement positifs aux autres données, déterminés en fonction de leur importance. Enfin, en ce qui concerne les données de description les moins importantes, on peut ne pas leur affecter
de coefficient de priorité, si l'on considère que l'absence de coefficient correspond à un coefficient infini.
Dans un mode préféré de réalisation, le fichier 18 de seuils de coefficients de priorité comporte n valeurs de seuils Ni, ..., Nn. Le filtre 12 est alors configuré pour :
- recopier dans l'ensemble 14ι les données associées au coefficient de priorité nul et les données associées aux coefficients de priorité inférieurs ou égaux à Ni ;
- recopier dans l'ensemble 142 les données associées au coefficient de priorité nul et les données associées aux coefficients de priorité strictement supérieurs à l^ et inférieurs ou égaux à N2 ;
- recopier dans l'ensemble 14n les données associées au coefficient de priorité nul et les données associées aux coefficients de priorité strictement supérieurs à Nn-1 et inférieurs ou égaux à Nn.
En variante, le filtre 12 peut aussi être configuré pour recopier dans un ensemble supplémentaire 14n+1 les données associées au coefficient de priorité nul et les données associées aux coefficients de priorité strictement supérieurs à Nn, notamment les données qui ne sont associées à aucun coefficient de priorité. II en résulte que les ensembles fournis en sortie 14^ 142, ..., 14n (et éventuellement
14n+ι) ont la propriété d'être complémentaires, c'est-à-dire que les données de description qu'ils contiennent sont distinctes, à l'exception des données de description associées au coefficient de priorité nul.
Les ensembles de sortie 14^ 142, ..., 14n sont ensuite destinés à être transmis à travers un réseau de transmission de données ou à être stockés dans des moyens de stockage d'un ou plusieurs destinataires distants.
Dans le cas d'une application à des données de description de contenus audiovisuels, l'ensemble de sortie 14ι comporte les données les plus importantes, par exemple le titre ou la durée d'un film, alors que les autres ensembles 142 14n (et éventuellement 14n+ι) comportent des données de moins en moins importantes, telles que par exemple les acteurs ou la date de réalisation d'un film.
Pour illustrer plus précisément le système qui vient d'être décrit, l'ensemble de données d'entrée est par exemple une table XML telle que la table suivante, inspirée des spécifications du forum TV-Anytime : <TVAMain>
<ProgramLocationTable version="11 ">
<Schedule> <Event>
<Program crid="c d://www.ft.com/Lanœlot" /> <EventDescription> <PublishedTime 2000-05-31 T17: 10:00/>
<PublishedDuration PlY0M0DT01H35M00S/> </EventDescription> </Event> <Event> <Program
<EventDescription>
<PublishedTime 2000-05-31 T14:00:00/> <PublishedDuration P 1 YOMODT01 H35M00 /> </EventDescription> </Event>
<Event>
<Program crid= "crid://www. ft. com/Merlin " /> <EventDescription>
<PublishedTime2000-05-31 T12: 10:00/> <PublishedDurationP1 Y0M0DT01H35M00S/>
</EventDescήption> </Event> <Event>
<Program crid="crid://www. ft. corn/Arthur" /> <EventDescription>
<PublishedTime 2000-05-31 T16:10:00/> </EventDescription> </Event> </Schedule> </ProgramLocationTable>
<Programlnformation version= "9 " programld= "crid://www. FT. com/Merlin "> <BasicDescription>
<Title> Concert </ Title > </BasicDescription> </Programlnformation>
<Programlnformation version= "13" programld= "crid://www. FT. com/Viviane ">
<BasicDescription>
<Title> La fée </ Title > </BasicDescription> </Programlnformation> <Programlnformation version="11 " programld="crid://www.FT.com/Lancelot">
<BasicDescription>
<Title> Chevalier </ Title > </BasicDescription> </Programlnformation> <Programlnformation version="15" rogramld="crid://www.FT.com/Arthur">
<BasicDescription>
<Title> Roi </ Title > </BasicDescription> </Programlnformation> </TVAMain>
Un fichier de construction des coefficients de priorité est par exemple le fichier suivant :
//étape de tri par ordre chronologique de date
Opération (field=(dateTime)Schedule/Event/PublishedTime() , mode=« tri ») Filtre (
//suppression des événements passés (Merlin) Event[((dateTime) EventDescription/PublishedTimeQ + (duration) EventDescription/PublishedDuration()) < 2000-05-31 T14:30:00 ]: remove
)
//affectation d'une priorité max aux événements courant et suivant Filtre(
Programlnformation[position()<=2] : 1 Programlnformation[position()>2 & position()<4] : 3
)
ListeVar= Operation( field = Schedule/Event/Program/@crid , mode=" extraction") Filtre(
Programlnformation[/@programld() ~ une des valeurs de ListeVar[1 :2] : 1
Programlnformation[/@programld() ==
une des valeurs de ListeVar[3:*] : 3 Schedule/Event[Program/@crid() == une des valeurs de ListeVar[1 :2] : 1 Schedule/Event[Program/@crid() == une des valeurs de ListeVar[3:*] : 3
)
On notera que ce fichier comporte des instructions pour affecter des coefficients de priorité à chacune des données du fichier d'entrée 10, et également des instructions visant à trier les données XML de la table d'entrée, ou à en supprimer certaines.
Les données de la table d'entrée peuvent avoir des relations d'héritage entre elles, de sorte qu'une donnée parent (par exemple la donnée TVAMain) ayant au moins un descendant peut hériter du coefficient de priorité de ce descendant.
Il permet la génération du fichier 16 de coefficients de priorité suivant (présenté sous forme d'un tableau) :
Le fichier 18 de seuils est par exemple le fichier suivant : Niveau N1 = 2 Niveau N2 = 4 Niveau N3 = 65000 où le nombre 65000 représente l'infini.
L'application du filtre 12 à la table XML précédente avec les fichiers 16 et 18 donnés en exemple donne deux tables XML de sortie 14ι et 142.
La première table XML 14! comporte les données suivantes : <TVAMain> <ProgramLocation Table version= " 11 ">
<Schedule> <Event>
<Program crid="crid://www. ft. com/Viviane " /> <EventDescription> <PublishedTime 2000-05-31 T14:00:00/>
<PublishedDuration P1 Y0M0DT01 H35M00S/> </EventDescription> </Event> <Event> <Program crid="crid://www.ft.com/Arthur"/>
<EventDescription>
<PublishedTime 2000-05-31 T16: 10:00/> </EventDescription> </Event> </Schedule>
</ProgramLocationTable>
<Programlnformation programld="crid://www. FT. com/Viviane "> <BasicDescription>
<Title> Concert </ Title > </BasicDescription>
</Programlnformation>
<Programlnformation programld= "crid://www. FT. co / Arthur" > <BasicDescription>
<Title> La fée </ Title > </BasicDescription>
</Programlnformation>
</TVAMain>
La deuxième table XML 142 comporte les données suivantes : <TVAMain>
<ProgramLocationTable version="11"> <Schedule>
<Event>
<Program crid="crid://www. ft. com/Lancelot" /> <EventDescription>
<PublishedTime>2000-05-31 T17: 10:00/> <PublishedDuration>P1Y0M0DT01H35M00S/>
</EventDescription> </Event> </Schedule> </ProgramLocation Table> <Program Information version="11" programld="crid://www.FT.com/Lancelot">
<BasicDescription>
<Title> Chevalier </Title > </BasicDescription> </Programlnformation> </TVAMain>
Le système représenté sur la figure 1 comporte en outre des moyens 20 de modification du fichier de seuil 18.
Ces moyens de modification 20 reçoivent en entrée une liste de débits disponibles en sortie du système vers n destinataires distincts. Ces débits peuvent être fournis de façon manuelle, mais également de façon automatique, avec une mise à jour en temps réel en fonction des évolutions de la connexion entre le système et les destinataires.
Les moyens de modification 20 reçoivent également en entrée une liste de périodicités prédéterminées des transferts vers les destinataires.
Ainsi par exemple, pour un premier destinataire, une liaison au débit O^ est disponible et la périodicité des émissions doit être de Pi. De façon plus générale, à chaque destinataire, on associe un débit Dj et une périodicité Pj.
Si au moins un ensemble de sortie quelconque doit être transmis à un destinataire, les moyens de modification 20 comparent la taille de cet ensemble de sortie au produit du débit disponible Dj par la périodicité requise Pj. Si taille est supérieure au produit Dj Pj, les moyens de modification 20 calculent de nouvelles valeurs des seuils du fichier 18, pour
réduire la taille de l'ensemble de sortie considéré et permettre sa transmission au destinataire correspondant.
Ainsi, en prenant en compte la liste des débits disponibles D^ D2, ..., Dπ, et la liste des périodicités requises Pi, P2 Pn. les moyens de modification 20 calculent de nouveaux seuils et relancent la génération par le filtre 12 des ensembles de sortie 14ι, 142, ..., 14n s'il y a modification des seuils, pour fournir en sortie du système, des ensembles de sortie 22ι, 222, ..., 22n dont les tailles sont adaptées aux destinataires auxquels ils doivent être transmis.
Le fonctionnement des moyens de modification 20 sera détaillé en référence à la figure 3.
La figure 2 représente les étapes successives du procédé de traitement mis en œuvre par le filtre 12.
Ce procédé comporte une première étape 30 d'initialisation et de lecture des données fournies en entrée du filtre 12, notamment de lecture des fichiers 16 et 18. Lors de cette étape, un indice i est initialisé à 1 , une borne inférieure Binf est initialisée à zéro et une borne supérieure Bsup est initialisée à N, = Ni.
Lors de l'étape 32 suivante, on crée un fichier f,, correspondant au i-ème ensemble de sortie 14j.
Ensuite, lors d'une étape 34 de lecture de l'ensemble 10 de données d'entrée, le filtre 12 cherche puis lit une donnée XML de l'ensemble d'entrée 10 associée à un coefficient de priorité égal à zéro, ou strictement supérieur à Binf et inférieur ou égal Bsup.
Lors de l'étape 36 suivante, le filtre 12 accède à la balise correspondant à cette donnée XML et insère la donnée XML dans le fichier de sortie fj. Lors de l'étape de test 38 suivante, le filtre 12 vérifie s'il a lu la dernière donnée XML de l'ensemble d'entrée 10. Si ce n'est pas le cas, on revient à l'étape 34, pour poursuivre la lecture des données XML dans l'ensemble 10 de données d'entrée.
Si la dernière donnée XML a été lue, on passe à une étape 40 de validation et de sauvegarde du fichier de sortie fj. Ensuite, lors d'une étape de test 42, on vérifie si le fichier de sortie généré fj est le dernier fichier de sortie devant être généré.
Si ce n'est pas le cas, on passe à une étape 44 d'incrémentation. Lors de cette étape 44, l'indice i est incrémenté d'une unité, puis l'on affecte à Binf la valeur Nj.i, et à Bsup la valeur Nj. On passe ensuite de nouveau à l'étape 32 pour la création d'un nouveau fichier fj.
Sinon, c'est-à-dire si lors de l'étape de test 42 on constate qu'on a généré le dernier fichier de sortie 14n, on passe à une étape 46 de fin de procédé.
La figure 3 représente les étapes successives du procédé de traitement mis en œuvre par les moyens de modification 20. Ce procédé comporte une première étape 50 d'initialisation et de lecture des données fournies en entrée des moyens de modification 20, notamment de lecture de la liste des débits disponibles D^ D2, ..., Dn, de lecture de la liste des périodicités P-i, P2, ...,
Pn, et de calculs de la taille maximale d'au moins un ensemble de sortie devant être transmis à un i-ème destinataire. La taille maximale du ou des ensembles de sortie devant être envoyés à ce destinataire est égale au produit Dj PL
Lors de cette étape également on initialise un indice i à la valeur 1. Lors de l'étape 52 suivante, on active le filtre 12 pour que celui-ci génère le ou les ensembles de sortie devant être transférés au i-ème destinataire, à l'aide du fichier de seuils 18. Lors de cette étape également, on calcule la taille effective du ou des ensembles de sortie ainsi générés.
Ensuite, lors d'une étape de test 54, on teste si la taille du ou des ensembles de sortie ainsi générés est inférieure à la taille maximale souhaitée, calculée lors de l'étape
50. Si c'est le cas, on passe à une étape 56 d'incrémentation du ou des niveaux de seuil correspondant à ce ou à ces ensembles de sortie, dans le fichier de seuils 18, puis de nouveau à l'étape 52.
Sinon, on passe à une deuxième étape test 58, lors de laquelle on teste si la taille effective du ou des ensembles de sortie est supérieure à la taille maximale souhaitée, calculée lors de l'étape 50. Si c'est le cas, on passe à une étape 60 lors de laquelle on décrémente d'une unité le ou les niveaux de seuil correspondant à l'ensemble de sortie ou aux ensembles de sortie devant être transférés au i-ème destinataire. On retourne ensuite à l'étape 52.
Sinon, on passe à une étape 62, lors de laquelle on incrémente l'indice i d'une unité, la taille du ou des ensembles de sortie étant égale à la taille maximale calculée lors de l'étape 50. En variante, lors des étapes 54 et 58, on peut définir une marge δ permettant de passer à l'étape 62, même si la taille du ou des ensembles de sortie n'est pas strictement égale à la taille maximale souhaitée.
Ensuite, lors de l'étape de test suivante 64, on teste la valeur de l'indice i. Si cet indice est égal à n, alors on passe à une étape 68 de fin de procédé, sinon on passe de nouveau à l'étape 52.
Lors de la dernière étape 68, on peut décider de diffuser les ensembles de sortie obtenus vers les destinataires ou de stocker localement ces ensembles de sortie pour les diffuser ultérieurement.
Le diagramme de la figure 4 représente l'évolution au cours du temps d'une valeur de seuil quelconque Nj parmi les valeurs du fichier 18, lors de l'application du procédé décrit en référence à la figure 3. Pour prendre en compte des modifications possibles en temps réel de l'ensemble de données d'entrée 10 ou des valeurs de périodicité d'envoi, ou bien encore des valeurs de débit disponible, ce procédé est réitéré régulièrement.
Par exemple, comme cela est illustré sur la figure 4, un seuil Nj peut initialement avoir la valeur 1 qui implique un débit effectif de la transmission du ou des ensembles de sortie correspondant, inférieur au débit disponible Dj. Ce seuil est alors incrémenté lors de l'étape 56 pour atteindre la valeur 2.
Comme cela est illustré de nouveau sur la figure 4, avec la valeur 2, on obtient toujours un ou plusieurs ensembles de sortie dont la transmission implique un débit inférieur au débit disponible Dj.
Le seuil Nj est alors de nouveau incrémenté d'une unité lors de l'étape 56 pour atteindre la valeur 3. De nouveau le débit effectif est inférieur au débit disponible. Le seuil
Nj est alors de nouveau incrémenté d'une unité lors de l'étape 56 pour atteindre la valeur
4. Avec cette valeur, le débit effectif dépasse le débit disponible D,. Ainsi, lors de l'étape 60, le seuil est décrémenté d'une unité et retrouve la valeur 3.
Entre temps, l'ensemble de données d'entrée 10, ou d'autres paramètres peuvent avoir été modifiés, de sorte que le débit effectif avec cette valeur de seuil à 3 n'est pas nécessairement égal au débit effectif calculé précédemment avec cette même valeur de seuil. Ainsi, de nouveau avec cette même valeur de seuil Nj= 3, le débit effectif peut à un certain moment dépasser le débit disponible Dj ce qui nécessite une décrémentation de cette indice lors de l'étape 60.
On voit que les différentes valeurs de seuil du fichier 18 sont mises à jour régulièrement pour tenir compte des modifications des paramètres utilisés par le système, ou pour être ajustées aux débits disponibles et aux périodicités d'envoi. Selon un second mode de réalisation de l'invention, le système représenté sur la figure 5 est configuré pour la mise en œuvre d'un procédé de traitement d'ensembles de données pour la fourniture, à partir d'une pluralité d'ensembles d'entrée, d'une pluralité d'ensembles de sortie vers une pluralité de destinataires présentant une pluralité de débits de transfert disponibles. Pour cela, ce système se distingue de celui de la figure 1 en ce qu'il comporte plusieurs filtres 112, 212 et 312, identiques au filtre 12 précédemment décrit, reliés aux
moyens de modification 20. Le premier filtre 112 est adapté pour recevoir en entrée des données provenant d'un premier ensemble 110 de données XML, d'un premier fichier 116 de coefficients de priorité associés à chacune des données de description de l'ensemble 110, et d'un premier ensemble de seuils 118. En outre, ce premier filtre 112 est adapté pour fournir en sortie des ensembles de sortie 114ι, 1 14 114n eux-mêmes fournis en entrées des moyens de modification 20. On notera Cn, C12, ... les coefficients de priorités du premier fichier 1 16. Par exemple Cn = 0, Cι2 = 1 , ...
De la même façon, le deuxième filtre 212 est adapté pour recevoir en entrée des données provenant d'un deuxième ensemble 210 de données XML, d'un deuxième fichier 216 de coefficients de priorités associé à chacune des données de description de l'ensemble 210 et d'un deuxième fichier de seuils 218. En outre, ce deuxième filtre 212 est adapté pour fournir en sortie des ensembles de sortie 214! , 2142, ...214n, eux-mêmes fournis en entrée des moyens de modification 20. On notera C2ι, C 2, ... les coefficients de priorités du deuxième fichier 216. Enfin, le troisième filtre 312 est adapté pour recevoir en entrée des données provenant d'un troisième ensemble 310 de données XML, d'un troisième fichier 316 de coefficients de priorité associés à chacune des données de description de l'ensemble 310 et d'un troisième fichier de seuils 318. Ce filtre est lui aussi adapté pour fournir en sortie des ensembles de sortie 314^ 3142, ...314n, eux-mêmes fournis en entrée des moyens de modification 20. On notera C31, C32, ... les coefficients de priorités du troisième fichier 316.
Dans ce mode de réalisation, les moyens de modification 20 reçoivent en entrée une liste de débits disponibles D D2, ..., Dn et une liste de périodicités prédéterminées des transferts vers les destinataires, constituée ici de trois valeurs de périodicité par débit disponible. Par exemple, le débit D^ est associé aux ensembles de sortie 114^ 2Λ \ et 314^ Au débit D correspondent trois périodicités Pu, P12 et Pι3, pour définir les périodicités d'envoi des ensembles de sortie 114^ 214! et 314ι respectivement. Le débit D2 est associé aux ensembles de sortie 1142, 2142 et 314 . Au débit D2 correspondent trois périodicités P ι, P22 et P 3, pour définir les périodicités d'envoi des ensembles de sortie 1142, 2142 et 3142 respectivement. Le débit D3 est associé aux ensembles de sortie 1143, 2143 et 3143. Au débit D3 correspondent trois périodicités P31, P32 et P33, pour définir les périodicités d'envoi des ensembles de sortie 1143, 2143 et 3143 respectivement.
En outre, les moyens de modification 20 reçoivent en entrée une liste de priorités ordonnant d'une façon globale les coefficients de priorité des fichiers 116, 216 et 316. Par exemple, cette liste comporte les éléments ordonnés suivants : (Cn, C2ι, C3ι, C32, C1 , C-22, C33, ...). Elle définit quelles données des ensembles d'entrée 110, 210 et 310 doivent
être transmises d'une façon globale. Par exemple, une donnée de priorité C32 = 2 de l'ensemble 310 est prioritaire par rapport à une donnée de priorité C12 = 2 de l'ensemble 110.
Les moyens de modification fonctionnent selon le procédé décrit précédemment, pour fournir en sortie des ensembles de sortie 122^ 1222...122n, 222!, 2222...222n, 322!, 3222, ...322n, et transmettre ces ensembles de sortie, en fonction des tailles maximales autorisées respectives DiPn, DιP12, D^^.etc.
La figure 6 représente la complémentarité des ensembles de sortie fournis par le procédé de traitement de données de description, conformément au mode de réalisation décrit précédemment. Seuls trois ensembles de sortie sont représentés et sont notés 22'!, 22'2 et 22'3. Dans ce cas, lorsque des données de description sont contenues dans l'un des ensembles de sortie, elles ne sont pas présentes dans les autres ensembles, à l'exception des données de priorité associées au coefficient nul. Ainsi, en fonction des capacités du réseau, ou en fonction des capacités de stockage du destinataire, on transmet l'un uniquement, deux, ou bien trois des ensembles de sortie générés par le filtre 12.
En variante, la figure 7 représente les ensembles de sortie fournis par le procédé de traitement de données de description, conformément à un autre mode de réalisation. Seuls trois ensembles de sortie sont représentés et sont notés 22"!, 22"2 et 22"3 pour les distinguer de ceux fournis par le mode de réalisation précédent. Dans ce cas, l'ensemble 22"ι comporte toutes les données associées aux coefficients de priorité inférieurs N-|. L'ensemble 22"2 contient toutes les données de description associées aux coefficients de priorité inférieurs à N2 et l'ensemble 22"3 comprend toutes les données de description associées aux coefficients de priorité inférieurs N3. Par conséquent, l'ensemble 22"3 contient toutes les données de description de l'ensemble 22"2, qui lui-même contient toutes les données de description de l'ensemble 22'V
Ainsi, dans ce mode de réalisation, en fonction des capacités du réseau, ou en fonction des capacités de stockage du destinataire, on transmet l'un uniquement des ensembles de sortie générés par le filtre 12. Le système représenté sur la figure 8 illustre une première utilisation du procédé décrit précédemment, dans le mode de réalisation tel que décrit en référence à la figure 6, dans le cadre d'une application de diffusion. Il comporte un serveur 70' comprenant des moyens de stockage de l'ensemble 10 de données d'entrée. Le filtre 12 est en outre implémenté sur ce serveur 70'.
Le fichier 18 de seuils comporte par exemple trois valeurs seuils et le filtre 12 est configuré pour fournir les trois ensembles de sortie 22^, 22'2 et 22'3, à partir de ces valeurs seuils.
Le serveur 70' est relié à un réseau de transmission de données 72, tel que le réseau Internet, pour diffuser ces ensembles de sortie à différents destinataires, en utilisant la fonction Multicast du réseau Internet.
Ainsi, par exemple un premier destinataire est un terminal 74 relié au réseau 72 de transmission de données au moyen d'une ligne ADSL à 512 Kbits/s.
Un deuxième destinataire est un terminal 76 relié au réseau 72 de transmission de données au moyen d'une ligne ADSL à 1024 Kbits/s.
Enfin, un troisième destinataire est un terminal 78 relié au réseau 72 de transmission de données au moyen d'une ligne ADSL à 2048 Kbits/s.
Les données de description sont diffusées par le serveur 70' aux terminaux 74, 76 et 78 de la façon suivante, en fonction des capacités de leur raccordement au réseau 72 : - seul l'ensemble de données 22'ι est reçu par le terminal 74 ;
- les ensembles de données 22'! et 22'2 sont reçus par le terminal 76 ; et
- les ensembles de données 22'1 ; 22'2 et 22'3 sont reçus par le terminal 78. Le système représenté sur la figure 9 illustre une seconde utilisation du procédé décrit précédemment, dans le mode de réalisation tel que décrit en référence à la figure 4. Ce système comporte un serveur 70" relié au réseau 72 de transmission de données. Le filtre 12 est en outre implémenté sur ce serveur 70".
Le fichier 18 de seuils comporte par exemple trois valeurs seuils et le filtre 12 est configuré pour fournir les trois ensembles de sortie 22! , 22"2 et 22"3, à partir de ces valeurs seuils. Un premier terminal 80, tel qu'un téléphone mobile GSM, est relié au réseau 72 de transmission de données et est adapté pour émettre une requête η vers le serveur 70".
Cette requête contient des informations sur la nature du terminal 80 (téléphone mobile
GSM) et donc sur ses capacités à stocker une réponse à cette requête (par exemple, le serveur limitera sa réponse à 2 Ko pour ce terminal). Un deuxième terminal 82, par exemple un assistant numérique personnel, est relié au réseau 72 de transmission de données et est adapté pour émettre une requête r2 vers le serveur 70". Cette requête contient des informations sur la nature du terminal 82
(assistant numérique personnel) et donc sur ses capacités à stocker une réponse à cette requête (par exemple, le serveur limitera sa réponse à 3 Ko pour ce terminal). Enfin, un troisième terminal 84, par exemple un micro-ordinateur, est relié au réseau
72 de transmission de données et est adapté pour émettre une requête r3 vers le serveur
70". Cette requête contient des informations sur la nature du terminal 84 (microordinateur) et donc sur ses capacités à stocker une réponse à cette requête (par exemple, le serveur limitera sa réponse à 10 Ko pour ce terminal).
En conséquence, les données de description sont transmises par le serveur 70" aux terminaux 80, 82 et 84 de la façon suivante, en fonction des capacités de leur raccordement au réseau 72 :
- seul l'ensemble de données 22"i est transmis au terminal 80 ;
- seul l'ensemble de données 22" est transmis au terminal 82 ; et
- seul l'ensemble de données 22"3 est transmis au terminal 84.