Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...)
Serveurs (Apache, IIS,...) Forum d'entraide sur les Serveurs : Apache, IIS, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/10/2007, 17h58   #1
Invité de passage
 
Inscription : mars 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 3
Points : 0
Points : 0
Par défaut Controle d'un logiciel depuis le web

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
sojabio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 16h42   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 310
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 310
Points : 8 592
Points : 8 592
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 09h32   #3
Invité de passage
 
Inscription : mars 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 3
Points : 0
Points : 0
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 !
sojabio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 10h44   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 310
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 310
Points : 8 592
Points : 8 592
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
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h24.


 
 
 
 
Partenaires

Hébergement Web