Brevet FR2840703A1 — publié le 20031212

traitement de ladite premiere tache. i Application des reseaux actifs pour la repartition de charge au sein d'une pluralite de serveurs de service La presente invention concerne la repartition de charge au sein d'un ensemble de servours, mettant en cauvre un m8me service. L'invention s'applique particulibrement bien aux reseaux actifs. Differentes solutions de l'etat de la technique vent par exemple presentees dans ['article > de Ralf S. Engelschall, public en 1998 dans >. Cet article est par exemple disponible sur Internet, a l'adresse suivante: http://vww.webtechniques.com/a rchives/1 998/05/engeischal l/ La figure 1 illustre une premiere solution de l'etat de la technique. Dans ['article ci-dessus, cette premibre solution est intitulee approach >>. Un equipement, non represente, transmet une requete de service R. Cette requete est vehiculee par le reseau N. Le service requis est implemente par plusieurs servours S., S2 et S3. En amont de ces serveurs, il a ete prevu un dispositif D charge de la repartition de charge. C'est ce dispositif qui est appele > dans ['article de Ralf S. Engelschall. A la reception de la requete de service R. ce dispositif va decider de la transmettre vers le servour S (requete R), vers le servour S2 (requete R2) ou bien vers le servour S3 (requete R3). Ce choix dans le serveur destinataire de la requete peut dependre de ragles simplex: par exemple, le dispositif D peut transmettre les requetes de service successivement a chaque servaur, dans i'ordre. Cette approche presente un principal inconvenient qui est ['absence de flexibilite en terme de topologie. En effet, pour qutun ensemble de serveurs 104537/SYC/EEND \\klefilO1\DPl$\Salle\F104537\PREbADEP\FIT\projetbr.doc S1, S2, S3 poisse beneficier de la fonction de repartition de charge, il est necessaire que ces servaurs soient situes de telle maniere que toutes les requdles qui leur vent destinees passent par le dispositif D. La figure 2 illustre une seconde solution de 1'etat de la technique. Da ns i'a rticle mention ne precedem ment, cette solution est intitu lee >. L'equipement E desire transmettre une requ8te de service. Classiquement, afin de conna^'tre l'adresse IP (Internet Protocol) du serveur implementant ce service, il interroge un serveur de noms de domaines DNS (pour >) via un message m,. En reponse, le servour de noms de domaines DNS lui retourne un message m2 contenant cette adresse. Selon cette solution, le serveur de noms de domaines peut 8tre modifie et prevu pour renvoyer l'adresse d'un serveur different en fonction d'une regle de repartition de charge. Ainsi, en fonction de la reponse de ce serveur de noms de domaine, I'equipement de reseau E va transmettre une requbte R vers un servour S, une requbte R2 vers un serveur S2 ou bien une requdte R3 vers un serveur S3. Cette solution permet de realiser la repartition de charge entre des serveurs situes a differents endroits du reseau, mais soufre d'autres inconvenients. Le premier d'entre eux est le fait qu'une fois qu'une premiere interrogation du serveur de noms de domaines DNS est effectuee, la reponse est memorisee (cachee) par l'equipement de reseau E. La requbte de service suivante ne fera pas forcement appel au serveur de noms de domaines, et dans ce cas, elle sera dirigee vers le meme serveur sans qu'aucun controle de l'etat de sa charge ne soit effectue. D'autre part, cette solution repose sur l'hypothese que ['interrogation du servour de noms de domaines DNS est effectuee par le client et quelle est directement adressee au systeme de repartition de charge. Cette hypothese n'est pas valide dans toutes les configurations, notamment lorsqu'une 1 04537/SYC/EEND \\klefilOl\DPl$\Salle\F1 04537\PREMDEP\FIT\projetbr.doc passerelle de type > (ou firewall en langue anglaise) emet les interrogations a destination de l'exterieur en lieu et place du client. La presente invention a pour but de palier ces differents problemes poses par les solutions de 1'etat de la technique. Pour ce faire, I'invention a pour premier objet un equipement de reseau pour la transmission de paquets de donnees, certains de ces paquets de donnees contenant des requetes de service, le service eta nt mis en cauvre par une pluralite de servaurs. Selon ['invention, cet equipement de reseau se caracterise en ce qu'il dispose de moyens pour recevoir des paquets de donnees contenant ou referencant du code executable et des moyens pour decider de la transmission de ces paquets de donnees a un autre equipement de reseau ou de ['execution du code executable, ce code executable eta nt prevu pour repartir les requbtes de service parmi la pluralite de servours. L'invention a pour second objet un dispositif de gestion associe a une pluralite de servaurs rattaches a un reseau, chacun de ces servours mettant en cauvre un meme service. Ce dispositif de gestion se caracterise en ce qu'il dispose de moyens pour transmettre a des equipements de reseau, des codes executables ou des references a des codes executables, prevus pour repartir les requetes parmi la pluralite de serveurs. L'invention a pour troisieme objet un procede pour repartir la charge au sein d'une pluralite de serveurs rattaches a un reseau, mettant en cauvre un service. Ce procede se caracterise en ce qu'il comporte une etape de transmission de paquets de donnees contenant ou referencant du code executable prevu pour etre execute par des equipements du reseau et pour repartir les requetes de service parmi la pluralite de servours. 104537/SYC/EEND \\klefilOl\DPl$\Solle\F104537\PREMDEP\Fll\projetbr.doc Selon une mise en ceuvre de ['invention, la pluralite de serveurs est repartie en plusieurs groupes, chaque groupe etant rattache a un equipement different du reseau. Outre la resolution des problemes des solutions de l'etat de la technique, I 'invention permet de surcro'^t de gerer aisement la situation da ns laquelle les servours ne seraient pas rattaches a un unique equipement du reseau. L'invention et ses avantages appara^'tront de fac,on plus claire dans ia description d'une mise en couvre de 1'invention, qui va suivre, en liaison avec les figures annexces. Les figures 1 et 2, deja commentees, illustrent deux solutions de 1'etat de la technique. La figure 3 represente le fonctionnement du mecanisme de repartition de charge selon 1'invention. La figure 4 schematise la mise en place de ce mecanisme. Sur la figure 3, I'equipement de reseau E7 rec,oit une requete de service. Cet equipement de reseau est par exemple un routeur IP, et le reseau N auquel il appartient est un reseau de donnees de technologie IP (Internet Protocol). Cet equipement de reseau E possede un code executable prevu pour repartir cette requete de service parmi deux equipements de reseau sortie >>, E2 et E3. Cette repartition peut par exemple etre conforme aux ressources des servours associes aux chemins correspondant aux equipements de reseau E et E2. Si, par exemple, chaque servour de ['ensemble des serveurs S', S2 et S3 dispose de ressources equivalentes, la ressource globale associee au chemin allant vers l'equipement de reseau E2 sera 2 fois plus elevee que celle associee au chemin allant vers 1'equipement de reseau E3. 1 04537/SYC/EEND \\klefilO 1 \DPi$\Scille\F1 04537\PREMDEP\FIT\projetbr. doc Une regle simple de repartition pourra alors etre de faire une repartition statistique du nombre de requete vers les deux equipements E2 et E3, avec un poids 2 pour 1'equipement E2 et un poids 1 pour 1'equipement E3. Autrement dit, chaque requete de service parvenant a l'equipement E aura une probabilite 2/3 d'etre transmise, selon une requete R2 vers 1'equipement E2 et une probabilite de 1/3 d'etre transmise, selon une requete R3 vers l'equipement E3. L'equipement de reseau E2 possede deux servours S., S2 qui lui vent rattaches. De la m8me facon que i'equipement de reseau E, il dispose d'un code executable prevu pour repartir les requetes de service qui lui parviennent. A titre d'exemple, si les deux servours S et S2 disposent de ressources equivalentes, le code executable execute par l'equipement E2 peut simplement repartir les requetes de service entrantes R2 de fac,on equiprobable, soit vers le serveur S en une requete R, soit vers le servaur S3 en une requete R2. Enfin, I'equipement de reseau E3 transmettra normalement les requetes de services entrantes R3 a destination du servaur S3, aucune repartition de charge n'ayant lieu a cet endroit. L'exemple de regle de repartition mise en cauvre par le code executable, qui a ete donnee, I'a ete a titre non limitatif. D'autres heuristiques vent bien evidemment possibles, de meme que des algorithmes plus evolues. La figure 4 montre une fac,on dont les codes executables peuvent etre transmis aux equipements de reseau. Selon une mise en cauvre de ['invention, ces executables vent transmis par un dispositif de gestion M. La transmission peut consister: 30. A transmettre un paquet de donnees contenant le code executable, 1 04537/SYC/EEND \\klefilO 1 \DPI$\Salle\F1 04537\PREMDEP\Fll\projetbr.doc À Ou a transmettre un paquet de donnees contenant une reference de ce code executable. Le code executable lui-meme peut etre memorise dans les equipements de reseau eux-memes ou bien dans un serveur de codes executables, non represente sur la figure. Ces deux mecanismes repondent aux principes generaux de la tech nolog ie con nue su r le nom de La reference peut par exemple etre un identificateur permettant de determiner un code executable unique sur un serveur de codes executables, ou sur l'equipement de reseau lui-m8me. Dans ie cas ou le paquet de donnees contient le code executable, celui-ci peut par exemple etre prevu pour s'executer sur une plate-forma logicielle de type CORBA (Common Object Request Broker Architecture) tel que specifiee par l'OMG (Object Management Group). Ceci permet au code executable d'interagir de facon plus simple avec les differents composants logiciels prealablement installes sur l'equipement de reseau. Le dispositif de gestion M est preferentiellement prevu pour transmettre des codes executables differents a plusieurs equipements de reseau: par exemple, il transmettra un code executable c a l'equipement E, un code executable c2 a un equipement E2 et un code executable C3 a un equipement E3. On peut ainsi facilement modifier les regles de repartition de charge, en transmettant a l'equipement de reseau adequat, un nouveau code executable. Par exemple, si le serveur S devient indisponible ou trop chargee, on peut transmettre a l'equipement de reseau E2 un nouveau code executable prevu pour transmettre toutes les requetes de service vers le serveur S2. 1 04537/SYC/EEND \\klefilO1\DPl$\Salle\F1 04537\PREA4DEP\FIT\projetbr.doc Eta nt donne que dans ce cas, la repartition des ressources est faite entre le groupe de servours rattache a l'equipement E2 et celui rattache a l'equipement E3, un nouveau code executable peut aussi etre transmis a l'equipement E1. Ce nouveau code actif peut par exemple etre prevu pour transmettre les requAtes de service arrivantes, de facon equiprobable vers les equipements E2 et E3. Un autre avantage est que le dispositif de gestion M peut etre etroitement associe cux servours S, S2' S3. Par exemple, il peut regulierement vender les serveurs ou obtenir des informations de ceux-ci, afin de determiner leur degre de charge. En fonction de ces informations, il peut determiner de nouvelles regles de repartition a appliquer et determiner les codes executables a transmettre aux equipements adequats. Par ailleurs, il devient possible, grace a ['invention, de supprimer ou d'ajouter des serveurs. Par exemple, si un nouveau servour mettant en ccovre le service est rattache a l'equipement E3, le dispositif de gestion M pourra transmettre un nouveau code executable aux equipements de reseau E et E3. 11 est egalement possible de prevoir plusieurs dispositifs de gestion. Chacun d'entre eux peut alors gerer une partie des serveurs disponibles. Une repartition possible consiste a ce que chaque dispositif de gestion gere les serveurs qui lui vent topologiquement proches, par exemple dans le meme sous-reseau. Dans ce cas, chaque dispositif de gestion est responsable de l'envoie du code executable a l'equipement de reseau le plus proche, de fac,on a repartir la charge selon la politique choisie. 1 04537/SYC/EEND \\klefilO1\DPl$\Salle\F1 04537\PREMDEP\FIT\projetbr.doc Selon une mise en couvre de ['invention, le ou les dispositif(s) de gestion M pout ou peuvent etre localise(s) sur un des serveurs Sl, S2, S3. Ce pout par example etre un module logiciel execute sur ce servour. 10453 7/SYC/E EN D \\klefilO 1 \D Pl$\501 le\F 1 04537\PREMDEP\FIT\projetbr.doc REVENDICATIONS 1) Equipement de reseau (EI, E2, E3) pour la transmission de paquets de donnees, certains de ces paquets de donnees contenant des requetes de service, ledit service eta nt mis en ceuvre par une pluralite de serveurs (S, S2, S3), caracterise en ce qu'il dispose de moyens pour recevoir des paquets de donnees contenant ou referencant du code executable et des moyens pour decider de la transmission desdits paquets de donnees a un autre equipement de reseau ou de ['execution audit code executable, ledit code executable etant prevu pour repartir lesdites requetes de service parmi ladite pluralite de servours. 2) Dispositif de gestion (M) associe a une pluralite de serveurs (S., S2, S3) rattaches a un reseau (N), chacun desdits serveurs mettant en couvre un meme service, caracterise en ce qu'il dispose de moyens pour transmettre a des equipements de reseau (E, E2, E3) des codes executables ou des references de codes executables (c, c2, c3), prevus pour repartir les requetes parmi ladite pluralite de serveurs. 3) Procede pour repartir la charge au sein d'une pluralite de serveurs (S. , S2, S3) rattaches a un reseau (N), mettant en ceuvre un service, caracterise en ce qu'il comporte une etape de transmission de paquets de donnees contenant ou referencant du code executable (c,, C2, C3) prevu pour etre execute par des equipements (E, E2, E3) audit reseau et pour repartir les requetes de service parmi ladite pluralite de serveurs. 4) Procede selon la revendication precedente, dans laquel ladite pluralite de servours est repartie en plusieurs groupes, chaque groupe eta nt rattache a un equipement different audit reseau.