|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 3 ![]() |
Bonjour,
Je programme un logiciel de simulations démographiques en Pascal (je sais Pascal, ça fait ringuard, mais en algorithmique et pour l'enseignement, c'est plutot pas mal). Je cherche à contrôler et suivre les simulations à partir d'une interface web et comme je ne suis pas un pro de la programmation web, je ne sais pas par où commencer. Idéalement, je souhaite entrer des paramètres dans une form d'une page, cliquer sur un bouton, et lancer la simulation. Si je me suis bien documenté, on fait ça assez facilement avec CGI, et c'est compatible Pascal. Mais, comme les simulations durent plusieurs heures ou jours, j'aimerais suivre progressivement les résultats intermédiaires et pas attendre que tout soit fini pour que la page s'affiche. Comment faire ça? Coupler CGI et AJAX ? Ou SSI, mais il paraît que Ruby permet de faire cela aussi? Mais alors peut-on garder le programme de simulation en Pascal? Bon je suis perdu, et j'aurais besoin de l'aide de connaisseurs ! Merci beaucoup Guillaume |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : août 2005 Messages : 8 310 ![]() |
A priori, toutes les technos Web te permettront de faire ce que tu recherches. Le truc, c'est que qq soit la techno, aucune n'est adaptée au lancement ou à l'exécution de tâches longues. En gros, l'idée dans ce genre de cas c'est d'avoir 2 systèmes : un système non Web d'exécution des processus Pascal à longue durée (à base d'un script lancé par cron par exemple) et un système de gestion orienté Web qui te permet de programmer des exécutions Pascal et de suivre leur évolution. Après, l'implémentation d'un tel mécanisme, c'est toi qui vois : pour des raisons de propreté, on utilisera préférentiellement une base de données pour stocker toutes les exécutions (avec leur état et éventuellement des traces, etc.). Dans ce cas :
- Tu te connectes sur le Web à une interface d'admin qui te permet de consulter, modifier ou ajouter des entrées dans cette base de données - Tu as un processus qui lit régulièrement la base de données et exécute les demandes. Pour mettre à jour l'état d'une exécution Pascal, soit c'est ton moteur qui est capable de déterminer l'état et de mettre à jour la base (ce que j'aurais tendance à recommander), soit c'est ton programme Pascal qui met à jour la base. Sinon, j'aurais plutôt posté la question dans la partie Général Conception Web du forum. Bon courage
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2007 Messages : 3 ![]() |
Merci pour ta réponse. En fait, j'ai fait un CGI qui me lance mon appli pascal avec les paramètres que je veux, et ensuite j'ai javascript qui me charge les résultats toutes les 3 secondes. Ca correspond en gros à ce que je voulais faire. Même si c'est pas de la haute technologie !
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : août 2005 Messages : 8 310 ![]() |
La question à se poser c'est de savoir ce qu'il se passe si tu fermes la navigateur : est-ce que ton programme Pascal est interrompu brutalement ou est-ce que le calcul continue ? Et s'il continue, comment récupérer le résultat ?
J'ai fait un truc en PHP un peu équivalent à ce que tu as fait mais qui ne marche pas sur tous les serveurs (c'est OK avec EasyPHP et mon serveur Apache Linux mais pas chez mon hébergeur ) :- J'ai un programme (en PHP également) qui génère des traces dans un fichier (pour consultation off-line des résultats) et sur la sortie standard - J'appelle ce programme depuis une page PHP avec la fonction popen. Je récupère alors un "handler" sur la sortie standard de la commande. - Ma page PHP boucle sur ce handler et affiche ce qu'elle y récupère au fur et à mesure. - Je compte un timeout : si des étapes du programme sont un peu longue, je prolonge un peu le timeout du thread serveur exécutant ma page PHP (fonction set_time_limit). C'est ça qui ne passe par sur tous les serveurs. J'ai rien inventé, j'ai repris du code présent sur le site php.net Tout ça a l'air super tu me diras mais dans mon cas, si la connexion coupe entre mon navigateur et mon serveur, le programme est stoppé net. C'est pour ça qu'un système avec cron ou autre est intéressant : tu n'as pas à t'occuper de ce pb de timeout ou de coupure de connexion, ça peut travailler toute la nuit s'il faut, ça marchera.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com