Bonjour, voici une question qui ne concerne pas de code source à corriger.

Un employeur m'a demandé de transformer (par magie) deux logiciels de type client lourd (très lourd) en client léger dont ces programmes seraient installés dans un gros serveur. Chaque utilisateur devra ouvrir une session tout simplement sur le serveur et l’utiliser les programmes à distance. Ceci permet de limiter le nombre de serveur et de réduire les ordinateurs en simple terminaux.
Après de nombreux recherches, j’ai trouvé quelques pistes intéressantes mais ayant aboutir à chaque fois à un échec total.

La première idée était de concevoir un serveur utilisant les protocoles RDP ou protocoles ICA (bref un projet super lourd), mais là les protocoles sont des protocoles industriels (donc impossible à trouver des informations précises, pour que je puisse concevoir quoi que ce soit). De plus, l’idée de louer les services de Citrix ou de Microsoft ou une autre firme que ce soit est impossible… Donc l’idée d’un émulateur Windows tombe à l’eau…

La deuxième idée est de transformer les logiciels faits en C# en applications qui sont accédées par l’intermédiaire d’un navigateur (notion client léger) et de mettre l’application dans le serveur et les utilisateurs peuvent y aller par un navigateur Web. Le problème est que le code source du logiciel a été fait en plusieurs mois voire même un ou deux années et que les logiciels communiquent entre eux avec des messages internes Windows….

Enfin, la troisième idée pure imagination (que je ne pense pas que ça soit possible) et grâce à des codes sources libres que j’ai trouvé consiste de créer une sorte de VNC (Remote Display) et de faire une sorte de Thread sur le serveur pour chaque utilisateur. Cette concept sent l’usine à gaz (voire l’usine nucléaire dirigée par Homer Simpson).

Donc ma question est : est-ce qu’il n’a pas d’autres solutions ? Si oui, lesquelles ? et si les idées que j’ai développé sont correcte ?

NB : Les utilisateurs utilisent tous des ordinateurs Windows avec un serveur Windows et une base de donnée SQL Server.

Merci par avance pour la lecture de mon mini-pavé et d’une éventuelle réponse.