2010-04-04 13 views
0

Je veux créer une application qui exécute un script distant. L'utilisateur peut créer un script (probabily un script Lua) puis le stocke dans le serveur. Ensuite, il peut utiliser une API pour exécuter le script. Je pensais que l'API pourrait être un webservice. Donc mes questions sont:Exécuter à distance Lua Script

J'ai besoin de hautes performances pour exécuter le script. Donc mon premier choix était le script Lua. Quelqu'un a une autre suggestion?

Parce que j'ai besoin de performances élevées, je pensais que le webservice était la meilleure solution. Peut-être que je pourrais créer un service Windows TCP/IP qui contient la demande des utilisateurs. Il est important de dire que j'aurai de nombreux scripts d'exécution en même temps. Donc, je vais avoir un problème de concurrence.

Mes scripts vont interroger dans une base de données. Je vais utiliser Tokyo Cabinet ou Tokio Tyrant. Je pense que Tokio Tyrant est la seule solution parce que j'aurai beaucoup de demandes. Pour la performance, ai-je besoin de faire une connexion? Est-il possible de partager des variables entre les demandes de services Web?

Pour créer le service Web ou le service Windows, je pensais utiliser C++.

Quelqu'un peut-il répondre à ces questions?

+4

Ne vous inquiétez pas pour les performances. Ne vous inquiétez pas de la performance du tout! Fais-le fonctionner. Peut-être qu'un jour, quand votre service se développera dans le top 10 mondial, vous devrez vous soucier de le rendre rapide. Dormez bien jusque-là. –

Répondre

3

L'utilisateur peut créer un script [et mon application exécuter] ...

J'espère que vous avez réfléchi aux implications de sécurité!

Suggestions:

  1. Lua est probablement beaucoup assez rapide. Verrouillez les bibliothèques standard ou vous le regretterez. Pour des conseils, regardez sur la liste de diffusion Lua — ce problème a été résolu par beaucoup d'autres.

  2. Vous avez un problème de concurrence uniquement si vous avez partagé des données mutables. Pour résoudre votre problème, placez ces données dans une base de données qui gère la concurrence.

  3. Vous n'avez aucune preuve que les performances seront un problème. Choisissez une base de données avec laquelle vous pouvez vivre, faites la chose la plus simple possible et mesurez le débit. Si ce n'est pas assez rapide, améliorez, rincez, répétez.

  4. Si vous utilisez Lua, vous trouverez qu'il est plus facile de s'interfacer avec C qu'avec C++.

  5. L'optimisation prématurée est la racine de tous les maux. Cessez de vous inquiéter des performances et faites la chose la plus simple qui pourrait fonctionner.

+4

Point # 5, "Faire la chose la plus simple qui pourrait fonctionner," devrait être # 1! –

Questions connexes