Brevet FR2830644A1 — publié le 20030411

la technologie Internet. La présente invention concerne un procédé d'ordonnancement d'un ensemble de fonctions incluses dans une requête d'exécution de fonctions. Elle concerne également un procédé d'exécution de fonctions sur une station serveur d'un réseau de communication. De manière générale, la présente invention concerne l'exécution à distance de fonctions dans un réseau de communication. Lorsqu'une station client utilise des services fournis par une station serveur d'un réscau de communication, cette opération est réalisée grâce à l'envoi, par la station client, d'une ou plusieurs requêtes d'exécution de fonction. Afin de limiter les transferts de requêtes sur le réseau de communication, il est avantageux de regrouper dans une même requête d'exécution plusieurs fonctions à exécuter. Par ailleurs, lorsque ces fonctions sont payantes, c'est-à-dire que chaque fonction est associée à un coût d'exécution, il est pratique d'inclure un paiement unique dans la requête susceptible de couvrir le coût global de I'exécution des fonctions incluses dans cette requête. Aujourd'hui, lorsqu'une telle requête d'exécution est adressse à une station serveur classique, ce dernier refuse le traitement de l'ensemble des fonctions demandées lorsque le paiement fourni par le client est inférieur au coût total des fonctions devant être exécutées. Dans un tel cas, la station serveur classique retourne un message d'erreur à la station client de telle sorte que la requête d'exécution n'est pas traitée. La présente invention a pour but d'optimiser le traitement d'une requête d'exécution par une station serveur lorsque plusieurs fonctions à exécuter sont incluses dans cette requête. A cet effet, la présente invention vise selon un premier aspect, un procédé d'ordonnancement d'un ensemble de fonctions incluses dans une requête d'exécution de fonctions. Selon l'invention, ce procédé d'ordonnancement comprend les étapes suivantes: - identification dudit ensemble de fonctions incluses dans la requête d'exécution et des coûts d'exécution associés respectivement auxdites fonctions; - détermination d'un critère de tri choisi parmi un ensemble de critères dépendant du coût d'exécution desdites fonctions; et - tri des fonctions à partir du critère déterminé. Grâce au tri prénlable des fonctions dans la requête d'exécution, il est ainsi possible d'optimiser l'exécution de cette requête en traitant en priorité des fonctions choisies à partir de leur coût d'exécution. Grâce à la détermination d'un critère choisi parmi un ensemble de critères dépendants du coût d'exécution, il est possible d'adapter le tri des fonctions incluses dans la requête d'exécution aux souhaits du client ou de la station serveur. Selon un mode de réalisation pratique de l'invention, à l'étape de détermination d'un critère, le critère est choisi parmi un ensemble de critères comprenant au moins un tri par coût d'exécution croissant et un tri par coût d'exécution décroissant. Selon le résultat que l'on souhaite obtenir lors de l'exécution de la requête, on pourra choisir l'un ou l'autre de ces critères. En particulier, un tri par coût d'exécution croissant permet, lors de l'exécution de la requête dans l'ordre des fonctions ordonnancées, d'exécuter le maximum de fonctions pour un prix déterminé. En revanche, un tri des fonctions par coût d'exécution décroissant permet d'exécuter en priorité des fonctions associces à un coût d'exécution le plus élevé, c'est-à-dire a priori des fonctions ayant une forte valeur ajoutée et susceptibles d'intéresser en priorité la station client. Selon une caractéristique préférée de l'invention, à l'étape de détermination d'un critère, ce critère est lu à partir de la requête d'exécution de fonctions. Ainsi, le critère de tri peut être directement enregistré dans la requête d'exécution envoyée par la station client de telle sorte que cette dernière peut indiquer au serveur l'ordre dans lequel il souhaite voir exécuter les fonctions incluses dans la requête. Selon un second aspect, la présente invention vise un procédé d'exécution de fonctions sur une station serveur d'un réseau de communication, les fonctions exécutables étant associées respectivement à un coût d'exécution. Ce procédé d'exécution comprend, lorsque la somme des coûts d'exécution des fonctions est supérieure à un montant prédéterminé, les étapes suivantes: - ordonnancement desdites fonctions dans un ordre choisi conformément au procédé d'ordonnancement décrit ci-dessus; et - exécution des fonctions dans l'ordre choisi tant que la somme des coûts d'exécution associés aux fonctions exécutées est inférieure ou égale au montant prédéterminé. Ce procédé d'exécution de fonctions permet ainsi d'optimiser le traitement d'une requête d'exécution de fonctions, lorsque la somme des coûts d'exécution de fonctions est supérieure à un montant prédéterminé. De manière pratique, I'étape d'exécution comporte les sous-étapes suivantes, mises en _uvre pour chaque fonction: - obtention du coût d'exécution associé à la fonction courante; - comparaison du montant prédéterminé et de la somme cu mu lée du coût d'exécution obtenu et de la somme des coûts d'exécution associés auxdites fonctions exécutées préalablement; et - exécution de la fonction courante si et seulement si la somme cumulée est inférieure ou égale audit montant prédéterminé. Corrélativement, la présente invention concerne également un dispositif d'ordonnancement d'un ensemble de fonctions incluses dans une requête d'exécution de fonctions, comprenant: - d es moyens d 'identification d e l'ense mble de fonctions in cl u ses dans la requête d'exécution et des coûts d'exécution associés respectivement auxdites fonctions; - des moyens de détermination d'un critère de tri choisi parmi un ensemble de critères dépendant du coût d'exécution desdites fonctions; et - des moyens de tri des fonctions à partir du critère déterminé. La présente invention vise également un dispositif d'exécution de fonctions sur une station serveur d'un réscau de communication, les fonctions exécutables étant associées respectivement à un coût d'exécution, comprenant un dispositif d'ordonnancement tel que décrit précédemment et des moyens d'exécution des fonctions dans l'ordre choisi tant que la somme des coûts d'exécution associés auxdites fonctions exécutées est inférieure ou égale à un montant prédéterminé. Ces dispositifs d'ordonnancement et d'exécution présentent des caractéristiques et avantages analogues à ceux décrits précédemment en relation avec les procédés d'ordonnancement et d'exécution. La présente invention vise également un ordinateur, une station serveur d'un réseau de communication et un réseau de communication adaptés à mettre en _uvre les procédés d'ordonnancement eVou d'exécution conformes à l'invention. L'invention concerne aussi une station client d'un réscau de communication adaptée à mettre en _uvre le procédé d'ordonnancement conforme à l'invention. L'invention concerne en outre des moyens de stockage d'information, éventuellement totalement ou partiellement amovibles, lisibles par un système informatique, comprenant des instructions d'un programme informatique adaptées à mettre en _uvre les procédés d'ordonnancement eVou d'exécution conformes à l'invention, lorsque ce programme est chargé et exécuté par le système informatique. Enfin, I'invention concerne un programme d'ordinateur, lisible par un microprocesseur, comprenant des portions de codes de logiciels adaptées à mettre en _uvre les procédés d'ordonnancement eVou d'exécution conformes à l'invention lorsque ledit programme d'ordinateur est chargé et exécuté sur un ordinateur. D'autres particularités et avantages de l'invention apparatront encore dans la description ci-après. Aux dessins annexés, donnés à titre d'exemples non limitatifs: - la figure 1 est un algorithme illustrant un procédé d'exécution de fonctions conforme à un mode de réalisation de l'invention; - la figure 2 est un algorithme illustrant un procédé d'ordonnancement conforme à un mode de réalisation de l'invention; - la figure 3 est un algorithme détaillant l'étape de détermination d'un critère de tri de la figure 2; - la figure 4 est un algorithme détaillant l'étape de tri de la figure 2; et - la figure 5 est un schéma bloc d'un dispositif adapté à mettre en _uvre les procédés d'ordonnancement eVou d'exécution conformes à l'invention. On va décrire tout d'abord, en référence à la figure 1, un procédé d'exécution de fonctions mis en _uvre dans un réseau de communication. Dans la suite, on considère une station client U connectée à une station serveur H. Bien entendu, dans un réscau de communication, les différents ordinateurs du réseau peuvent être tour à tour station client U ou station serveur H. Dans cet exemple, la station client U peut utiliser les services de ia station serveur H. En particulier, la station client U peut demander l'exécution d'une fonction directement sur la station serveur H. Par exemple, et de manière nullement limitative, la station serveur peut héberger des images numériques, et un utilisateur peut, à travers la station client U. effectuer des opérations sur l'une des images de la station serveur H. Les opérations peuvent être la conversion d'une image en noir et blanc, la rotation de l'image ou une symétrie par rapport à un axe horizontal ou vertical de l'image ou encore un agrandissement de l'image. Lors d'une exécution à distance d'une telle opération, I'image sera constamment stockée sur la station serveur H et ne transitera pas sur le réscau de communication. La station client se contentera d'émettre une requête d'exécution à distance de l'opération à destination de la station serveur. Sur le réseau Internet on peut utiliser un langage de communication tel que le langage XML ("eXtended Markup Language" en 1 0 anglais). L'utilisation de ce langage de communication pour représenter des objets informatiques sur le réseau et accéder à leurs fonctions est décrit en détail dans la demande de brevet européen 00 401 754.7 déposoe par Canon Research Centre France S.A. Nous rappelons ci-après la description des différents champs de données qu'il est nécessaire de traduire dans le langage de communication du réseau pour permettre d'invoquer à distance des fonctions sur des objets o. Champ: interfaces Ce champ permet d'envoyer plusieurs interfaces à des applications distantes. ... Champ: interface Ce champ correspond au concept générique d'une classe d'objet, comme défini dans les langages JAVA ou C++. Une interface décrit les opérations ou fonctions qui sont supportées par un objet informatique o. Ces fonctions utilisent généralement des paramètres et fournissent éventuellement un résultat. Une interface décrit également les attributs ou champ de données que tous les objets supportant cette interface contiennent lorsqu'ils sont traduits dans le langage de communication. Une interface peut également contenir une référence à d'autres interfaces, soit qu'elles s'étendent à ces autres interfaces ou fournissent seulement un raccourci (en anglais "short hand") pour utiliser ces autres interfaces. L'objet supporte alors toutes ces autres interfaces référencées. Champ: attribut Ce champ comporte la liste des attributs qu'un objet supportant I'interface contient lorsqu'il est traduit dans le langage de communication. Champ: fonctions Ce champ contient la liste des fonctions associées à l'objet informatique supportant cette interface. 1 5 Champ: fonction Ce champ correspond au concept générique de fonction. Une fonction est identifice par sa signature, par exemple un nom, le type de paramètre utilisé et le type d'objet obtenu lors de l'exécution de cette fonction. Champ: arguments Ce champ contient la liste des paramètres (en anglais "input arguments") dont une fonction a besoin pour sa mise en _uvre. ... Champ: argument Ce champ correspond à un paramètre d'une fonction et peut être par exemple un objet littéral ou un objet complexe. Le champ fonction permet ainsi d'invoquer une fonction sur un objet distant. On doit spécifier l'objet cible o et les paramètres de la fonction comme décrit précédemment. On va considérer dans la suite de la description, un système distribué orienté-objet (en anglais "distributed object system"). Un objet informatique est un élément comprenant des donnces, également appelées attributs, et des fonctions (en anglais "functions" ou "methods") utilisant éventuellement des paramètres ("input arguments" en anglais). Dans un tel système, les fonctions peuvent être appelées ou invoquées (en anglais "invokod") pour maniquler les données de l'objet. L'ensemble des fonctions applicables à un objet et des attributs constitue son interface. En pratique, la station client U émet une requête d'exécution à destination de la station serveur H pour appeler une ou plusieurs fonctions sur un objet informatique hébergé par la station serveur. Ici, on s'intéresse au cas particulier o la requête d'exécution comprend plusieurs fonctions à exécuter sur un ou plusieurs objets du serveur. Soit par exemple les fonctions fj, avec i compris entre 1 et n. Chaque fonction est associse à un coût d'exécution, respectivement cj. Pour exécuter la requête, le serveur devra être rémunéré suffisamment de manière à couvrir la somme des coûts d'exécution c;, i compris entre 1 et n. Préalablement à l'exécution de la requête, il est alors nécessaire de conna^tre le coût d'exécution associé à chaque fonction fj ainsi que la somme cumulée de ces coûts cj. Le coût d'exécution n'est généralement pas connu à l'avance par la station client et il peut être fixé librement par la station serveur, notamment en fonction de l'objet ou des données sur lesquelles s'applique la fonction. Cette information peut être adressée par la station serveur à la station client sur requête de celle-ci. L'interface de l'objet à manipuler est alors envoyée à la station client et le coût de la ou des fonctions à exécuter est extrait de cette interface. On donne ci-après un exemple d'une interface permettant de manipuler une image à distance. Cette interface comporte trois fonctions: - "ConvertToB&W" dont le prix est constant. Cette fonction permet de convertir une image en noir et blanc; - "Rotate" dont le prix dépend de la taille de l'image et de l'angle de rotation. Le prix est exprimé sous forme d'une expression que la station client peut évaluer: cette fonction permet de changer l'orientation d'une image. - "Flip" dont le prix dépend de paramètres déterminés par la station serveur. Le client n'est pas capable d'effectuer lui-même le calcul du prix. Le prix est par exemple disponible à l'adresse informatique suivante: http://ocea n ia/web-obj/class/l maq e. xml#fli p#price Cette fonction permet d'appliquer une symétrie à l'image. function price (width, height, angle) { return width*height*angle; 1 5 Après réception de l'interface par la station client, celle-ci peut être mémorisée pour une utilisation ultérieure dans la mémoire cache de la station client. Le coût d'exécution cj associé à chaque fonction fj est ensuite déterminé soit par lecture du coût mémorisée dans l'interface (par exemple pour la transformation d'une image en noir et blanc), soit par calcul d'une expression (par exemple pour la fonction rotation "rotate"), soit en demandant ce coût à la station serveur (pour la fonction symétrie "flip" par exemple). Ainsi, certaines fonctions relativement rapides et faciles à exécuter (par exemple la conversion en noir et blanc d'une image de 16 pixcis de côté) seront moins coûteuses qu'une opération nettement plus longue et plus complexe (par exemple la rotation de 35 dogrés d'une image de 2 048 pixcls de côté). La conversion en noir et blanc sera par exemple facturce 1 centime par la station serveur H. tandis que la rotation sera facturée 1 franc. Lorsque la station souhaite faire exécuter un ensemble de fonctions sur la station serveur, le coût global peut ainsi être calculé en estimant la somme des coûts associés à chaque fonction. Dans cet exemple de réalisation, on considère en outre que l'exécution des fonctions à distance est payée "à la volée" par la station client U. c'est-à-dire qu'une somme d'argent P est envoyée par la station client à la station serveur. Cette somme d'argent P correspond ainsi au montant prédéterminé disponible pour payer le serveur lors de l'exécution des fonctions demandées. De préférence, ce montant prédéterminé P est directement inclus dans la requête d'exécution des fonctions adressoe par la station client à la station serveur. On utilise à titre d'exemple, pour générer cette monnaie électronique, un système dit PayWord proposé par Rivest et Shamir. Une description de ce système peut être consultée à l'adresse I nternet http://theory. Ics. mit. ed u/rivesVRivestS ha mi r-mpay. ps. Bien entendu, le montant prédéterminé P permettant de rémunérer la station serveur pour l'exécution de l'ensemble de fonctions f pourrait également être mémorisé directement dans un compte associé au client et accessible par la station serveur. Quoiqu'il en soit, lorsque la requête d'exécution de l'ensemble de fonctions fj est réceptionnée par la station serveur H. une étape de comparaison E1 est mise en _uvre en premier lieu, comme illustré à la figure 1, afin de comparer la somme des coûts d'exécution cj associés aux fonctions au montant prédéterminé P correspondant à la somme d'argent disponible pour l'exécution des fonctions. Si la somme des coûts n'est pas supérieure au montant prédéterminé P. une étape d'exécution E2 peut être mise en ceuvre de manière classique de telle sorte que les fonctions sont exécutées dans l'ordre dans lequel elles ont été inscrites dans la requête par la station client U. Sinon, si la somme des coûts d'exécution est strictement supérieure au montant prédéterminé P. un test E3 permet de vérifier si l'ensemble de fonctions fj à exécuter peut être réordonné. Il s'agit en pratique de déterminer si les fonctions peuvent être permutées sans que le résultat produit sur l'objet auquel elles s'appliquent ne se trouve modifié. Dans la négative, le procédé d'exécution des fonctions se poursuit sans modifier l'ordre des fonctions de la requête. Dans une étape d'obtention E4, on considère la première fonction mémorisée dans la requête ainsi que son coût associé c. Une étape d'initialisation E5 permet d'initialiser à la valeur nulle la somme cumulée d correspondant à la somme cumulée des coûts de chaque fonction de la requête exécutée préalablement. Une étape de comparaison E6 est ensuite mise en _uvre pour comparer le montant prédéterminé P avec la somme cumulée du coût d'exécution c de la fonction traitée et le somme d des coûts d'exécution associés aux fonctions exécutées préalablement. Si la somme cumulée d+c est inférieure ou égale au montant prédéterminé P. une étape d'exécution E7 est mise en _uvre de manière à exécuter la fonction. Une étape de mise à jour E8 de la somme cumulée d est ensuite mise en _uvre dans laquelle la valeur d est incrémentée du coût d'exécution c associé à la fonction venant d'être exécutée. On vérifie dans une étape de test E9 s'il existe d'autres fonctions à exécuter dans la requête re,cue par la station serveur H. Dans l'affirmative, une étape de lecture E10 permet d'obtenir la fonction suivante et son coût d'exécution associé. On réitère ensuite les étapes de comparaison E6, d'exécution E7, de mise à jour E8 et de test E9 sur cette fonction courante. Si à l'issue de l'étape de test E9, toutes les fonctions ont été exécutées, le procédé d'exécution est terminé. Notons cependant qu'un tel cas ne devrait pas se produire dès lors qu'à l'issue de l'étape de comparaison E1, la somme des coûts d'exécution a été trouvée supérieure au montant prédéterminé P. Si à l'issue de l'étape de comparaison E6, la somme cumulée d+c est strictement supérieure au montant prédéterminé P. le procédé d'exécution est également interrompu. En revenant à l'étape de test E3, si le ré-ordonnancement des fonctions incluses dans la requête est possible, au moins en partie, une étape de ré-ordonnancement E11 est mise en _uvre conformément au procédé d'ordonnancement de l'invention. Ce procédé d'ordonnancement va être décrit en référence aux figures 2 à 4. Ce procédé d'ordonnancement comporte tout d'abord une étape d'identification E20 de l'ensemble L des fonctions fj à exécuter et des coûts d'exécution c; associés respectivement à ces fonctions. Une étape de détermination E21 est ensuite mise en _uvre pour déterminer un critère de tri choisi parmi un ensemble de critères dépendant du coût d'exécution des fonctions. Cette étape de détermination est illustrée en détail, selon un mode de réalisation de l'invention, à la figure 3. Ici, un test E30 permet de déterminer si un nombre maximal de fonctions de la requête doit être exécuté. Cette étape de test E30 peut être mise en _uvre au moyen d'une requête transférce de la station serveur H vers la station client U et à laquelle la station client peut répondre par oui ou par non. Dans l'affirmative, le critère retenu correspondra à un tri par coût d'exécution croissant. On pourra ensuite lors du traitement des fonctions dans I'ordre de coût croissant exécuter le maximum de fonctions pour un montant prédéterminé P. Sinon, le critère retenu correspondra à un tri par coût décroissant. Ce critère de tri présente l'avantage d'exécuter en priorité les fonctions les plus coûteuses correspondant a priori à des transformations importantes de l'objet et utiles pour la station client. Bien entendu, cette étape de détermination de critère peut être mise en _uvre différemment. Par exemple, le critère de tri peut être imposé par le serveur, la détermination du critère étant réalisée par une simple lecture de ce critère dans une mémoire de la station serveur. Ce critère pourrait en outre déjà être introduit dans un champ de la requête envoyée par l'utilisateur pour l'exécution des fonctions dans I'éventualité o le paiement disponible ne serait pas suffisant. Par ailleurs, d'autres critères de tri dépendants du coût d'exécution pourraient être utilisés. En particulier, le critère de tri pourrait coupler à la fois un ordre de priorité associé à chaque fonction et leur coût d'exécution. L'ordre de priorité associé à chaque fonction pourrait être soit donné par l'utilisateur du réseau de communication ou encore déterminé par le serveur en fonction de l'importance accordée à chaque fonction. Le tri à réaliser selon un tel critère pourrait par exemple être effectué en tenant compte d'abord du coût d'exécution associé à chaque fonction, puis de l'ordre de priorité associé à chaque fonction pour trier les fonctions ayant un même coût d'exécution. Alternativement, le tri pourrait prendre en compte d'abord l'ordre de priorité associé à chaque fonction, puis le coût d'exécution pour trier les fonctions ayant le même ordre de priorité. Une fois ce critère déterminé, une étape de tri E22 est mise en _uvre sur l'ensemble de fonctions. Lorsque toutes les fonctions sont permutables les unes avec les autres, un simple tri à partir de la valeur de chaque coût d'exécution est possible. En revanche, il peut s'avérer que seules certaines fonctions sont permutables entre elles ou sont permutables uniquement lorsqu'elles s'appliquent à des objets différents de la station serveur. Dans ce cas, une méthode de tri par permutation peut être utilisée, telle que la méthode de tri par remontée des bulles (en anglais "bubble sort"). De préférence, pour chaque fonction exécutable sur le serveur, un tableau de permutation est mémorisé permettant de mémoriser la possibilité ou non de permuter les fonctions avec elles-mêmes et deux à deux. Un tel tableau de permutation peut se présenter de la manière suivante, pour les fonctions décrites précédemment "ConvertToB&V\/', "Rotate" et "Flip": ConvertToB&W Rotate Fiin _ ConvertToB&W oui oui oui | Rotate oui oui non FlID oui non oui Un exemple de tri permettant de prendre en compte la permutation possible des fonctions est illustré à la figure 4. On considère ici à titre d'exemple non limitatif que le tri est réalisé sur un ensemble de fonction fi, i = 1 à n, par coût d'exécution cj croissant. Une étape d'initialisation E40 permet d'initialiser un premier indice j à la valeur 1, et une seconde étape d'initialisation E41 permet d'initialiser un second indice k à la valeur 1. Ces deux indices j, k permettent de parcourir l'ensemble des fonctions à trier et de permuter celles-ci deux à deux à chaque étape. Une étape de test E42 permet de vérifier si le coût associé Ck à la fonction courante est supérieur au coût Ck+1 associé à la fonction suivante. Dans l'affirmative, une étape de test E43 permet, à partir du tableau de permutation tei qu'illustré ci-dessus, de vérifier si les fonctions en question fk et fk+, peuvent permuter. Dans l'affirmative, une étape de permutation proprement dite E44 est réalisée pour permoter les fonctions fk et fk+ dans la liste L de fonction à trier. Une étape de mise à jour E45 permet ensuite d'incrémenter le second indice k d'une unité, puis on vérifie dans une étape de test E46 si ce second indice k est strictement inférieur à la valeur nj o n est le nombre de fonctions à trier et j le premier indice correspondant au nombre de fois o l'on parcourt la liste L des fonctions à trier. Tant que le second indice k demeure inférieur à la valeur nj, on réitère les étapes E42 à E46 pour l'ensemble des fonctions fk dans la liste L des fonctions à trier, considérées deux à deux. Si à l'issue de l'étape de test E42, le coût de la fonction courante ckest inférieur ou égal au coût de la fonction suivante Ck+, on incrémente directement dans une étape de mise à jour E45 I'indice k d'une unité. De même, si les fonctions courantes fk et fk+, ne peuvent pas permuter, par exemple lorsqu'il s'agit de la fonction "Flip" et de la fonction "Rotate", I'étape de mise à jour E45 de l'indice k est également mise en _uvre. Lorsqu'à l'issue de l'étape de test E46, I'indice k est supérieur ou égal à la valeur nj, on incrémente dans une étape de mise à jour E47 la valeur de premier indice j d'une unité et l'on compare cet indice j à la valeur n-1. Si cet indice j est inférieur à la valeur n-1, on réitère l'ensemble des étapes E41 à E48. Sinon, I'algorithme de tri est terminé. Cet algorithme permet ainsi de comparer deux éléments adjacents et de les échanger s'ils ne sont pas dans l'ordre. A chaque phase de tri, correspondant à la mise en _uvre des étapes E41 à E48, on réalise une partition entre la fonction ayant le plus grand coût d'exécution et toutes les autres fonctions. Ensuite, chaque phase de tri est mise en _uvre successivement sur ces autres fonctions. On obtient ainsi à l'issue de cette étape ordonnancement E11 un ensemble de fonctions fj ordonnées dans un ordre choisi. Le procédé d'exécution tel qu'illustré à la figure 1 se poursuit alors en traitant les fonctions une à une dans l'ordre choisi. En pratique, I'exécution des fonctions ainsi ordonnées se poursuit tant que la somme des coûts d'exécution associés aux fonctions exécutées est inférieure ou égale au montant prédéterminé P correspondant à une somme d'argent disponible pour le traitement de la requête d'exécution. Comme précédemment, dans une étape d'obtention E12, on considère la première fonction mémorisoe dans l'ordre choisi ainsi que son coût associé c. Une étape d'initialisation E13 permet d'initialiser à la valeur nulle la somme cumulée d correspondant à la somme cumulée des coûts de chaque fonction de la requête exécutée préalablement. Une étape de comparaison E14 est ensuite mise en _uvre pour comparer le montant prédéterminé P avec la somme cumulée du coût d'exécution c de la fonction traitée et la somme d des coûts d'exécution associés aux fonctions exécutés préalablement. Si la somme cumulée d+c est inférieure ou égale au montant prédéterminé P. une étape d'exécution E15 est mise en _uvre de manière à exécuter la fonction courante. Une étape de mise à jour E16 de la somme cumulée d est ensuite mise en _uvre dans laquelle la valeur d est incrémentée du coût d'exécution c associé à la fonction venant d'être exécutée. On vérifie dans une étape de test E17 s'il existe d'autres fonctions à exécuter dans la liste L des fonctions triées selon l'ordre choisi. Dans l'affirmative, une étape de lecture E18 permet d'obtenir la fonction suivante et son coût d'exécution associé. On réitère ensuite les étapes de comparaison E14, d'exécution E15, de mise à jour E16 et de test E17 sur cette fonction courante. Si à l'issue de l'étape de test E17, toutes les fonctions ont été exécutées, le procédé d'exécution est terminé. Si à l'issue de l'étape de comparaison E14, la somme cumulée d+c est strictement supérieure au montant prédéterminé P. le procédé d'exécution se poursuit dans ce mode de réalisation par le traitement de la fonction suivante dans l'ordre choisi. Ce mode de réalisation est particulièrement intéressant lorsque le critère choisi est un tri par coût d'exécution décroissant. En effet, les étapes d'obtention E18 de la fonction suivante et de son coût, de comparaison E14 et éventuellement d'exécution si la somme cumulée d+c est inférieure ou égale au montant prédéterminé P sont ainsi réitérces sur une fonction suivante associée à coût d'exécution inférieur. On peut ainsi augmenter le nombre de fonctions exécutées pour un montant prédéterminé P. Cette réitération de l'étape d'exécution sur la fonction suivante dans l'ordre choisi peut également être appliquce dans le cas o un tri partiel a été effectué par coût croissant (par exemple si seulement certaines fonctions sont permutables les unes avec les autres de telle sorte qu'un tri total ne peut *pas être effectué). Dans le cas o seulement certaines fonctions sont permutables avec d'autres, avant de réitérer les étapes de comparaison E14 et suivantes sur une fonction suivant une fonction non exécutable, il est nécessaire de vérifier au préalable dans une étape de test E19 si la fonction considérée est permutable ou non avec les fonctions précédentes non exécutées. Dans la négative, le procédé d'exécution est interrompu. Sinon, le traitement de la fonction considérce à l'étape d'obtention E18 peut être valablement réalisé. Grâce au procédé d'ordonnancement de l'invention, on peut ainsi optimiser le traitement des fonctions multiples dans une requête d'exécution reçue par ia station serveur. Ces procédés d'ordonnancement et d'exécution peuvent être mis en _uvre de manière avantageuse dans une station serveur d'un réseau de communication. Dans un autre mode de réalisation, le procédé d'ordonnancement pourrait éventuellement être mis en _uvre dans la station client. Un dispositif adapté à mettre en _uvre ces procédés d'ordonnancement et d'exécution est illustré à la figure 4. Le dispositif d'ordonnancement comporte des moyens d'identification des fonctions incluses dans la requête ainsi que des moyens d'identification (par lecture ou calcul) des coûts associés aux fonctions. Il comporte en outre des moyens de détermination d'un critère de tri à partir d'une mémoire adaptée à mémoriser des critères de tri. Des moyens de tri sont également prévus pour permettre le tri proprement dit des fonctions, en association éventuellement avec un tableau mémorisant les permutations possibles entre les fonctions Des moyens d'exécution de chaque fonction sont également incorporés dans le dispositif d'exécution, en coopération avec un montant prédéterminé mémorisé sur la station serveur ainsi éventuellement qu'avec le tableau des permutations possibles entre fonctions. L'ensemble de ces moyens peut être incorporé tant au niveau de la station client U qu'au niveau de la station serveur H dans un ordinateur tel que représenté à la figure 4. Cet ordinateur comprend de manière classique un microprocesseur 40, une mémoire morte 41 (Read Only Memory ou ROM) mémorisant soit le procédé d'exécution à distance d'une opération, soit le procédé d'exécution de cette opération, et une mémoire vive 42 (Random Access Memory ou RAM) comportant différents registres pour la mise en _uvre de ces procédés. L'ordinateur comporte notamment une interface de communication 49 pouvant être relice à un réseau de communication 4 pour recevoir ou transtérer des requêtes ou informations. En outre, I'ordinateur comporte des moyens de stockage de documents, tel qu'un disque dur 46, o est adapté à coopérer au moyen d'un lecteur de disque 47 avec des moyens de stockage amovibles 48 telles que des disquettes, des disques compacts ou des cartes informatiques (PC Card). Ces moyens de stockage fixes ou amovibles peuvent comporter le code du procédé d'ordonnancement et d'exécution à distance conforme à l'invention qui, une fois lu par le microprocesseur 40, sera stocké dans le disque dur 46. A titre de variante, le programme permettant au dispositif de mettre en _uvre l'invention pourra être stocké dans la mémoire morte 41. En seconde variante, le programme pourra être re,cu pour être stocké comme décrit précédemment par l'intermédiaire du réscau de communication 4. De manière classique, l'ordinateur possède également un écran 43 permettant par exemple de servir d'interface avec un opérateur à l'aide d'un clavier 44 ou d'une souris ou tout autre moyen. L'unité centrale 40 (CPU) va exécuter des instructions relatives à la mise en _uvre de l'invention. Lors de la mise sous tension, les programmes et méthodes relatives à l'invention, stockés dans une mémoire non volatile, par exemple la mémoire morte 41, sont transférés dans la mémoire vive 42 qui contiendra alors le code exécutable de l'invention ainsi que les variables nécessaires à la mise en _uvre de l'invention. Ainsi, la mémoire vive 42 incorporce dans une station client ou une station serveur d'un réseau de communication comprendra des registres pour stocker notamment des critères de tri, une table des permutations possibles et les coûts associés à chaque fonction. De même, la mémoire vive 42 incorporée dans une station serveur d'un réseau de communication comprendra des registres pour stocker le montant prédéterminé P. la liste des fonctions triés dans un ordre choisi ainsi que les coûts associés c à chaque fonction et la somme cumulée d. Un bus de communication 50 permet la communication entre les différents sous-éléments de l'ordinateur ou lié à lui. La représentation du bus n'est pas limitative et notamment le microprocesseur est susceptible de communiquer des instructions à tout sous- élément directement ou pour l'intermédiaire d'un autre sous-élément. Bien entendu, de nombreuses modifications peuvent être apportées à l'exemple de réalisation décrit si dessus sans sortir du cadre de l'invention. En particulier, le système PayWord n'est qu'un exemple parmi d'autres de monnaie électronique pouvant être générce sur la station client U et dépensoe ensuite sur la station serveur H d'un réscau de communication. En outre, le langage perfectionné XML utilisé ici peut être remplacé par d'autres systèmes connus tels que CORBA, DCOM ou JAVAIRMI. Enfin, le procédé d'exécution de fonctions à distance décrit ici pout s'appliquer à d'autres systèmes informatiques qu'un système distribué orienté- objet. REVENDICATIONS 1. Procédé d'ordonnancement d'un ensemble (L) de fonctions incluses dans une requête d'exécution de fonctions, caractérisé en ce qu'il comprend les étapes suivantes: - identification (E20) dudit ensemble de fonctions (f') incluses dans la requête d'exécution; - lecture (E21) d'un critère de tri à partir de la requête d'exécution de fonctions; et - tri (E22) des fonctions à partir du critère lu. 2. Procédé d'ordonnancement conforme à la revendication 1, caractérisé en ce qu'à l'étape de lecture (E21) d'un critère, le critère appartient à un ensemble de critères comprenant au moins un tri par coût d'exécution croissant et un tri par coût d'exécution décroissant. 3. Procédé d'ordonnancement conforme à l'une des revendications 1 ou 2, caractérisé en ce qu'à l'étape de lecture (E21) d'un critère, le critère est un ordre de priorité associé à chaque fonction. 4. Procédé d'ordonnancement conforme à l'une des revendications 1 à 3, caractérisé en ce que, si seules certaines fonctions sont permutables entre elles ou sont permutables uniquement lorsqu'elles s'appliquent à des objets différents, I'étape de tri (E22) met en ceuvre une méthode de tri par permutation. 5. Procédé d'ordonnancement conforme à l'une des revendications 1 à 4, caractérisé en ce qu'à l'étape d'identification (E20) dudit ensemble de fonctions, les coûts d'exécution (Cj) associés respectivement auxdites fonctions sont identifiés. 6. Procédé d'exécution de fonctions sur une station serveur (H) d'un réseau de communication, lesdites fonctions exécutables étant incluses dans une unique requête d'exécution, caractérisé en ce que, lorsque seule une partie desdites fonctions peut être exécutée par la station serveur, il comprend les étapes suivantes: - ordonnancement (E11) desdites fonctions dans un ordre choisi conformément au procédé d'ordonnancement selon l'une des revendications 1 à 5; et - exécution (E12-E19) desdites fonctions dans l'ordre choisi tant que le serveur peut exécuter lesdites fonctions. 7. Procédé d'exécution conforme à la revendication 6, caractérisé en ce que l'étape d'exécution comporte les sous-étapes suivantes pour chaque fonction: - obtention (E12) d'un coût d'exécution (c) associé à la fonction 1 0 courante; - comparaison (E14) d'un montant prédéterminé (P) et de la somme cumulée du coût d'exécution obtenu (c) et de la somme (d) des coûts d'exécution (d) associés auxdites fonctions exécutées préalablement; et - exécution (E15) de ladite fonction courante si et seulement si la somme cumulée (d+c) est inférieure ou égale audit montant prédéterminé (P) 8. Procédé d'exécution conforme à la revendication 7, caractérisé en ce qu'à l'étape d'ordonnancement (E11), le critère de tri déterminé est un tri par coût d'exécution décroissant, et en ce qu'à l'issue de I'étape de comparaison (E14), I'étape d'exécution (E14-E19) est réitérée pour la fonction suivant ladite fonction courante dans l'ordre choisi si la somme cumulée (d+c) est strictement supérieure au montant prédéterminé (P). 9. Procédé d'exécution conforme à la revendication 8, caractérisé en ce qu'il comporte préalablement à l'étape d'exécution (E15), une étape de test (E19) adaptée à vérifier si la fonction est permutable avec les fonctions précédentes non exécutées. 10. Dispositif d'ordonnancement d'un ensemble (L) de fonctions incluses dans une requête d'exécution de fonctions, caractérisé en ce qu'il comprend: - des moyens d'identification (40, 41, 42) dudit ensemble de fonctions incluses dans la requête d'exécution; - des moyens de lecture (40, 41, 42) d'un critère de tri à partir de la requête d'exécution de fonctions; et - des moyens de tri (40, 41, 42) des fonctions à partir du critère lu. 11. Dispositif d'ordonnancement conforme à la revendicatioh 10, caractérisé en ce que le critère de tri appartient à un ensemble de critères comprenant au moins un tri par coût d'exécution croissant et un tri par coût d'exécution décroissant. 12. Dispositif d'exécution de fonctions sur une station serveur (H) d'un réseau de communication (4), lesdites fonctions exécutables étant incluses dans une unique requête d'exécution de fonctions, caractérisé en ce qu'il comprend: - un dispositif d'ordonnancement desdites fonctions dans un ordre choisi conforme à l'une des revendications 10 ou 11; et - des moyens d'exécution (40, 41, 42) adaptés à exécuter lesdites fonctions dans l'ordre choisi tant que la station serveur peut exécuter lesdites fonctions. 13. Dispositif d'exécution conforme à la revendication 12, caractérisé en ce que les moyens d'exécution comportent: - des moyens d'obtention (40, 41, 42) d'un coût d'exécution (c) associé à la fonction courante; - des moyens de comparaison (40, 41, 42) d'un montant prédéterminé (P) et de la somme cumulée du coût d'exécution obtenu (c) et de la somme (d) des coûts d'exécution associés auxdites fonctions exécutées préalablement; et - des moyens d'exécution (40, 41, 42) adaptés à exécuter ladite fonction courante si et seulement si la somme cumulée (d+c) est inférieure ou égale audit montant prédéterminé (P). 14. Dispositif d'exécution conforme à l'une des revendications 12 ou 13, caractérisé en ce qu'il comporte en outre des moyens de test (40, 41, 42) adaptés à vérifier si une fonction courante est permutable avec les fonctions précédentes selon l'ordre choisi et non exécutées. 15. Dispositif d'ordonnancement conforme à l'une des revendications 10 ou 11, caractérisé en ce qu'il est incorporé dans: - un microprocesseur (40); - une mémoire morte (41) adaptée à mémoriser un programme d'ordonnancement des fonctions d'une requête d'exécution; et une mémoire vive (42) comportant des registres adaptés à mémoriser les variables modifiées lors de l'exécution dud it programme. 16. Dispositif d'exécution conforme à l'une des revendications 12 à 14, caractérisé en ce qu'il est incorporé dans: - un microprocesseur (40); - une mémoire morte (41) adaptée à mémoriser un programme d'exécution des fonctions d'une requête d'exécution; et - une mémoire vive (42) comportant des registres adaptés à mémoriser les variables modifiées lors de l'exécution dudit programme. 17. Ordinateur, caractérisé en ce qu'il comporte un dispositif d'ordonnancement conforme à l'une des revendications 10 ou 11. 18. Ordinateur, caractérisé en ce qu'il comporte un dispositif d'exécution conforme à l'une des revendications 12 à 14. 19. Station client d'une réseau de communication, caractérisé en ce qu'il comprend des moyens adaptés à mettre en _uvre le procédé d'ordonnancement conforme à l'une des revendications 1 à 5. 20. Station serveur d'un réseau de communication, caractérisé en ce qu'il comprend des moyens adaptés à mettre en _uvre le procédé d'ordonnancement conforme à l'une des revendications 1 à 5. 21. Station serveur d'une réseau de communication, caractérisé en ce qu'il comprend des moyens adaptés à mettre en _uvre le procédé d'exécution conforme à l'une des revendications 6 à 9. 22. Réseau de communication, caractérisé en ce qu'il comprend des moyens adaptés à mettre en _uvre le procédé d'ordonnancement conforme à l'une des revendications 1 à 5. 23. seau de mmunadon, Ids en qua compound des moyens adapts mete an Louvre is pmcAdA d'exbcudon conrme