2009-06-11 5 views
0

Je suis dans la phase de planification d'une nouvelle application client/serveur multi-utilisateur utilisant Flash via Flex et AIR. J'essaie de décider quelle plate-forme/pile web est le mieux adapté pour cela? J'ai utilisé RoR dans le passé, mais si je comprends bien, RoR est monothread, et n'est donc pas le choix idéal pour gérer potentiellement des milliers de demandes simultanées. J'ai fait quelques lectures sur Scala et Lift et c'est une option intrigante, mais je me demandais s'il y a d'autres langages/frameworks qui fonctionneraient bien pour mon projet?La pile Web la plus évolutive pour l'application Flash/Flex/AIR hautes performances?

+0

réponse mise à jour ... greetz – back2dos

+0

Notez que Lift n'est pas conçu pour être évolutif sur plusieurs machines ou pour être évolutif au sens de REST. Il est conçu pour prendre en charge de lourdes applications basées sur AJAX et Comet avec beaucoup de sessions actives au sein d'un même nœud. Voir ces discussions pour plus de détails: SO question "pourquoi le framework web lift est-il évolutif?" [http://stackoverflow.com/questions/648964/why-is-the-lift-web-framework-scalable] "Lift, State, et Scaling" du blog officiel de Lift [http://lift.la/lift-state-and-scaling] – CheatEx

Répondre

1

Je ne sais pas trop sur la Scala et Lift ... si vous voulez coller à ruby, consultez merb ... il semble qu'il sera fusionné avec RoR de toute façon, de sorte que vous pourriez peut-être attendre le prochaine version ... :)

vous pouvez jeter un oeil à haXe (un langage de haut niveau, qui cible de nombreuses plates-formes, comme AVM1, AVM2, PHP, C++ ECTC.) et neko (un serveur VM disponible en tant que compilateur cible pour haXe), ainsi que haXe remoting (vous pouvez simplement compiler votre net-code haXe sur un swc et coller à AS3/mxml pour le reste) ... neko échelles très bien ... il est très léger et extensible ... il y a plusieurs façons de l'utiliser comme plate-forme de serveur, mais cela vous permet aussi d'écrire ng tout à partir de zéro, puisque l'API expose un accès à faible niveau ...

modifier: vous devriez plutôt utiliser mod_tora, car il a l'empreinte plus faible ... pour les autres choses mentionnées, il suffit de consulter la liste de diffusion ... il y a une couche "base de données d'objets persistants simples", qui pourrait aider ... il y a aussi une "base de données d'objets à persistance totale" qui circule ... et pour le routage, il y a aussi plusieurs solutions ... oubliez de vérifier haxelib ... vous pouvez trouver tout à fait beaucoup de choses réutilisables là ...

greetz

back2dos

+0

Je prévois d'utiliser haXe pour le côté client, et selon votre suggestion, j'ai jeté un rapide coup d'oeil sur neko et mod_neko, mais il semble manquer quelques-uns des cadres de plus haut niveau que je J'en suis arrivé à attendre avec d'autres plateformes (pas de routage, ORM, etc). J'ai jeté un oeil à merb, et j'aime ce que j'ai vu là-bas. Nous étudierons cette option plus avant. Merci pour votre réponse. –

0

Je vous recommande d'utiliser lighttpd pour traiter votre contenu statique. Est-ce que votre application AIR est supposée interagir avec le serveur à partir duquel nous avons consommé d'autres services fournis par d'autres sites Saas? RoR ou Scala ou Lift sont parfaits si vous voulez garder votre contorller (de MVC) sur le serveur. Avec AIR, je ne pense pas que ce soit la façon dont vous voulez aller car cela augmente la complexité de l'interaction du contrôleur et vous devez maintenir l'état à deux endroits. Si votre modèle d'interaction client/serveur va simplement consommer des services REST (bien que le support REST soit un peu jenky dans Flex, vous aurez probablement besoin d'écrire votre propre bibliothèque de socket pour prendre en charge d'autres verbes REST et accéder à les en-têtes) alors votre serveur backend devient beaucoup moins compliqué. Vous avez seulement besoin de traiter la requête/réponse d'une requête HTTP.

Ok, donc ce que je recommanderais.

CherryPy pour Python Servlets/Jetty pour Java

Assurez-vous de choisir un niveau intermédiaire de la mise en cache, comme memcached ou TokyoTyrant (soutien à la fois tous les environnements mentionnés dans mon post et d'autres).

Questions connexes