Changes between Version 3 and Version 4 of Version2/Desarrollo/Communications


Ignore:
Timestamp:
Mar 21, 2011, 9:26:54 AM (9 years ago)
Author:
edulix
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Version2/Desarrollo/Communications

    v3 v4  
    3535Los mensajes que se intercambian en este protocolo son los siguientes:
    3636
    37 == Request ==
     37== Job Execution Request ==
    3838
    39 Es el mensaje que envía la consola web al servicio job request de un cliente cuando desde la consola web se solicita la realización de una tarea. La petición debe ir a la url {{{/jobrequest/(?P<id>[0-9]+)}}} del servicio job executer. El id se utilizará para luego poder referenciar este trabajo, y el contenido de los mensajes tiene formato JSON, con los siguientes campos:
     39Es el mensaje que envía la consola web al servicio job  executer de un cliente cuando desde la consola web se solicita la realización de una tarea. La petición debe ir a la url {{{/jobrequest/(?P<id>[0-9]+)}}} del servicio job executer. El id se utilizará para luego poder referenciar este trabajo, y el contenido de los mensajes tiene formato JSON, con los siguientes campos:
    4040
    4141{{{
     
    6464 * El campo ''sequential'' es opcional e indica si el comando se debe ejecutar inmediatamente (''False''), o debe encolarse de tal manera que se ejecute en la cola de comandos importantes que se deben ejecutar uno detrás de otro (''True''). Por defecto los comandos se ejecutan inmediatamente sin ser encolados.
    6565 * El campo ''files'' es opcional y contiene una lista de cadenas que contienen datos que deben meterse en un fichero temporal y pueden ser referenciados mediante la lista de argumentos ''args''. Así, el primer fichero puede ser referenciado en ''args'' utilizando un argumento con valor '$0', el segundo fichero con '$1', y así sucesivamente.
     66
     67== Job Update ==
     68
     69Un mensaje de tipo ''Job Update'' es enviado desde el servicio job executer de un cliente al servicio job receiver de un servidor opengnsys. El objetivo de este mensaje es mandar información actualizada referente a la ejecución de un comando desde el cliente al servidor.
     70
     71La petición debe ir a la url {{{/updatejob/normal/(?P<id>\d+)/(?P<status>[A-Z]+)}}}. El id es único y se refiere al id del trabajo (Job) que fue recibido por el cliente en un mensaje del tipo anterior (''Job Execution Request''), y status es el estado del trabajo.
     72
     73El contenido del mensaje se tratará como texto plano y se guardará tal cual en la base de datos del servidor, para que posteriormente sea procesador por la función de callback de dicho Job, si tuviera.
     74
     75Es una práctica común que dicho mensaje, que proviene de un comando ejecutado en el cliente (ya sea un comando nativo o de OGR) esté codificado en JSON, y que la función de callback lo procese como tal a partir del texto del mensaje en la BD, pero no es necesario. De hecho, lo normal es que sólo algunos comandos de OGR estén codificados en JSON, puesto que los comandos nativos de Linux no suelen devolver su salida en formato JSON.
     76
     77La cadena ''status'' puede ser:
     78* '''FINISHED''', que significa que el trabajo ha terminado correctamente.
     79* '''ERROR''', si la ejecución del comando dio algún tipo de error.
     80* '''INPROGRESS''', cuando se trata de un trabajo lento para indicar al servidor que sigue en ejecución.
     81
     82== Job Progress Update ==
     83
     84Un mensaje de tipo ''Job Progress Update'' es enviado desde el servicio job executer de un cliente al servicio job receiver de un servidor opengnsys. El objetivo de este mensaje es mandar información actualizada referente al progreso de la ejecución de un comando desde el cliente al servidor.
     85
     86La petición debe ir a la url {{{/updatejob/progress/(?P<id>\d+)/(?P<progress>\d+)}}}. El id es único y se refiere al id del trabajo (Job) que fue recibido por el cliente en un mensaje del tipo anterior (''Job Execution Request''), y progress indica el porcentaje de finalización (un número de 0 a 100) del trabajo.
     87
     88El contenido del mensaje se tratará como texto plano, suele ser un corto texto de una línea y se guardará tal cual en la base de datos del servidor, para que posteriormente sea procesador por la función de callback de dicho Job, si tuviera.