-
La meilleure approche ?
Bonjour,
Je voudrais réaliser une unique page web qui répond très rapidement aux requêtes de nombreux internautes et qui surtout ne surcharge pas le serveur.
L'interface utilisateur sera minimale (une entrée texte, quelques boutons).
Quelle serait selon vous la meilleure combinaison d'outils pour atteindre cet objectif ?
J'ai l'habitude de réaliser des algorithmes performants en C++. Je privilégie donc ce langage pour la partie traitement des requêtes/accès aux données en mémoire. J'espérais également déléguer quelques post-traitements et pré-traitements aux clients, en javascript. Une maîtrise de la séparation client/serveur me parait donc indispensable.
Mais je suis carrément dans le flou concernant la communication client/serveur et éventuellement l'AJAX (si vous pensez que c'est nécessaire).
Peut-être CppCMS ? Ou quelque chose d'encore plus bas niveau, compte tenu de la simplicité de la partie purement web ?
Je m'interroge aussi sur la pertinence du c++. Il y a peut-être des bibliothèques dans d'autres langages qui gèrent très bien la montée en charge, quitte à être un peu plus lent en moyenne.
merci d'avance,
Bye
-
si ton problème c'est la montée en charge côté serveur et que ta page est très légère, c'est que tu n'as probablement pas besoin de la générer pour chaque utilisateur : donc construis juste côté serveur un système de cache pour que tes serveur se contentent de renvoyer une page statique
-
Merci pour ta réponse jpvincent, mais je ne suis pas sûr de comprendre. Un système de cache suppose que les pages renvoyées aux utilisateurs sont (presque) à chaque fois les mêmes, non ?
Dans mon cas, côté serveur je stocke une liste de 3 gigas de mots, en simplifiant. Côté client, une interface pour récupérer une infime partie de cette liste. La page est simple dans le sens où l'interface se résume à un seul formulaire.
En ce moment je regarde du côté de Redis. Ca sera sûrement plus pratique d'utiliser un key-value store in-memory déjà fait que d'implémenter ma propre structure de données. Radis a des API dans plusieurs langages : C++, Java, Python, Ruby. J'élimine Python et Ruby pour ne pas être trop pénalisé en performance par la petite partie qui concerne le parsing de la requête.
Pour la communication client/serveur je ne sais pas trop. J'ai pensé à GWT mais j'ai lu qu'il générait du code HTML/CSS un peu lourd. Wicket est tentant aussi, mais je ne maîtriserais pas assez la séparation client/serveur. Le mieux serait une couche java simple au dessus du serveur HTTP à qui je fournirais du code HTML brut et qui me permettrait de récupérer les requêtes.