Cómo hacer una interfaz web para un código científico (II)

El siguiente paso consiste en crear la infraestructura web para mantener la aplicación.

Lo más fácil es utilizar xampplite en Windows; en Linux hay que instalar el apache y un lenguaje de script con el que te sientas cómodo. Yo recomiendo python o php, aunque en este tutorial me ceñiré a php.

Nuestro sistema necesitará entradas, que serán suministradas por un formulario html, y un wrapper que lea las opciones del formulario y se las mande al código. Esto es un método directo, por así decirlo, hasta que instalemos un gestor de ejecución.

El formulario puede llamarse index.php y el wrapper run.php. Ambos en el mismo directorio del servidor web, que puede ser htdocs/wui.

He puesto un ejemplo que desarrollé para mi propio código. Es en el wrapper run.php donde se hace importante lo dicho en el anterior post, donde hablé de la necesidad de permitir al código leer opciones desde la línea de comandos.

El comando php para ejecutar el código es system(), que ejecuta un programa en el servidor. Cuando el programa termina, el script php continua su ejecución.

Ejemplo php:

$input = $_GET['opcion1'];
$output = $_GET['opcion2'];

system("micodigo -input $input -output $output");

¿Cuál es el problema aquí? Si nuestro código es costoso en tiempo computacional, tardará más de 10 segundos en ejecutarse. Tener al usuario esperando que una web se cargue más de 5 segundos es como mínimo, arriesgado: puede aburrise, darle a volver en el navegador, cerrar la ventana, etc.

Lo que necesitamos ahora es el job scheduler, para mandar el trabajo a ejecutarse y mientras, mostrar al usuario una web de espera y decirle cómo puede acceder a sus resultados cuando el trabajo haya finalizado.

De esto hablaremos en el siguiente post…

Posted By dsuarez

David nació en Las Palmas de Gran Canaria, España. Estudió Ingeniería en Informática en la Universidad de Las Palmas de Gran Canaria (ULPGC), donde ha trabajado en investigación los últimos años. Siempre ha sentido una gran curiosidad por los ordenadores y las ciencias, y más recientemente en el mundo empresarial. Ha trabajado como programador/analista, consultor en tecnologías de la información y obtuvo la beca de Google Summer of Code en 2006. Es socio fundador de Wantudu (http://wantudu.es), empresa especializada en terminales táctiles para hoteles.

Comments are closed.