Une solution possible consiste à utiliser une usine a objets comme dans les exercices des TP précédents. Pour ce faire, on ajoute l'interface IDL suivante : interface Channel_Controler_Factory { void New_Channel_Factory(inout Channel_Controler new_chan, in string name); }; L'interface Channel_Controler_Factory permet à un producteur ou à un consommateur de récupérer une référence sur un objet Channel_Controler. Deux cas de figure peuvent intervenir : 1. Lors de la première invocation de la méthode New_Channel_Factory pour un nom donné, Channel_Controler_Factory instancie un nouvel objet Channel_Controler. 2. Lors des invocations successives de la méthode New_Channel_Factory pour ce même nom, Channel_Controler_Factory ne crée pas de nouvel objet mais retourne la référence de l'objet créé en 1. Channel_Controler_Factory doit donc gérer une structure de données (ex : collection vector, map, tableau ...) afin de mémoriser les différents objets Channel_Controler instanciés pendant la vie du serveur.