From 33ad6d417a5092b5312916d6b11c137f12698c16 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 5 Nov 2003 03:43:13 +0000 Subject: [PATCH] Actualizo protocolo de comandos HTTP. Ahora es mucho mas simple y extensible. --- docs/server.txt | 131 +++++++++++++++++++++++++++++------------------- 1 file changed, 79 insertions(+), 52 deletions(-) diff --git a/docs/server.txt b/docs/server.txt index c553d54..c81a3f8 100644 --- a/docs/server.txt +++ b/docs/server.txt @@ -60,70 +60,87 @@ por POST. Es decir, de un 'request' HTTP solo se usara la ruta para codificar los comandos. Ejemplo: GET /ruta/que/representa/comando?query=string HTTP/1.1 '----------------------------' Este es el comando que entendera el servidor. La presencia de un 'query string' -sera ignorada, al igual que datos enviados por POST, silenciosamente (sin +será ignorada, al igual que datos enviados por POST, silenciosamente (sin producir un error). Todos los comandos son respondidos con una respuesta XML que *siempre* incluye un código de éxito/error. Adicionalmente puede devolver más datos en la respuesta en cuyo caso se especifica expresamente. -Comandos Generales: -------------------- -Los nombres entre "<" y ">" denotan un argumento. - -Comando |Descripción |Respuesta -----------------------+----------------------+---------------------------------- -/ |Obtiene estado general|Cantidad de plantas, - |del servidor. |conexiones, transmisiones, - | |versión, uptime, etc. -----------------------+----------------------+---------------------------------- -/plants |Obtiene lista de |Lista de plantas con info mínima - |plantas. |de cada una (está corriendo o no, - | |uptime, cantidad de elementos,etc) -----------------------+----------------------+---------------------------------- -/plants/ |Obtiene la planta de |El mismo archivo que se crea en el - |nombre . |Constructor. -----------------------+----------------------+---------------------------------- -/transmissions |Obtiene una lista de |Lista de transmisiones activas - |las transmisiones |(host, puerto, uptime, etc). - |activas. | +Comandos en general: +-------------------- +Los comandos se tiene una estructura general compuesta por 3 elementos: +- Destino: A quien se le envía el comando. +- Comando: El comando en sí (la acción a realizar). +- Argumentos: Opciones y datos necesarios para ejecutar el comando. +Esto se estructura como una ruta, por lo que todos los comandos se componen la +menos de 2 'directorios' anidados, con cero o más argumentos representados a su +ves por archivos o más subdirectorios: +/////<...>/ + +Los destinos disponibles serán: +- server: Comandos para el servidor en sí. +- plant: Comandos para las plantas. +- transmission: Comandos para las transmisiones (el módulo de transmisión). + +Comandos para el servidor: +-------------------------- +Los comandos para el servidor, como se vio previamente, comienzan con /server/ +seguido de alguna de las siguientes opciones. + +Comando | Descripción | Respuesta +---------+------------------------+--------------------------------------------- +status | Obtiene estado general | Cantidad de plantas, conexiones, + | del servidor. | transmisiones, versión, uptime, etc. +---------+------------------------+--------------------------------------------- Comandos para una Planta: ------------------------- -Todos los comandos de plantas comienzan con /plants/ y reciben un argumento que -es el nombre de la planta, , a la cual enviar el comando. -Los comandos a continuación comienzan todos con '/plants/'. - -Comando |Descripción |Respuesta -----------------------+----------------------+---------------------------------- -/start |Comienza la simulación|Nada. - |de la planta de nombre| - |. | -----------------------+----------------------+---------------------------------- -/stop |Finaliza la simulación|Nada. - |de la planta de nombre| - |. | -----------------------+----------------------+---------------------------------- -/set///|Cambia la propiedad |Nada (a ver si no retorna el valor - | del elemento |realmente aceptado). - |, asignándole | - |el valor . | +Todos los comandos de plantas comienzan con /plant/ y continúan con alguna de +las siguientes opciones: + +Comando |Descripción |Respuesta +---------------+-----------------------------+---------------------------------- +list |Obtiene lista de plantas. |Lista de plantas con info mínima + | |de cada una (está corriendo o no, + | |uptime, cantidad de elementos,etc) +---------------+-----------------------------+---------------------------------- +get/ |Obtiene la planta de |El mismo archivo que se crea en el + |nombre . |Constructor. +---------------+-----------------------------+---------------------------------- +start/ |Comienza la simulación de la |Nada. + |planta de nombre . | +---------------+-----------------------------+---------------------------------- +stop/ |Finaliza la simulación de la |Nada. + |planta de nombre . | +---------------+-----------------------------+---------------------------------- +set/ |Cambia la propiedad |Nada (a ver si no retorna el valor + / |del elemento , |realmente aceptado). + / |asignándole el valor a | + / |planta de nombre . | + +NOTA: Los nombres entre "<" y ">" denotan un argumento. Comandos para una Transmisión: ------------------------------ -Todos los comandos de transmisiones comienzan con /transmissions. -Los comandos a continuación comienzan todos con '/transmissions'. -Los argumentos entre "[" y "]" son opcionales. De omitirse se usan valores por -predefinidos. - -Comando |Descripción |Respuesta -------------------------+--------------------------------------------+---------- -/start//[] |Comienza la transmisión al en el |Nada. - |puerto al en el puerto . | -------------------------+--------------------------------------------+---------- -/stop/[]/[] |Finaliza la transmisiónal en el |Nada. - |puerto . Si se omite el , se | - |finalizan todas las transmisiones. | +Todos los comandos de transmisiones comienzan con /transmission/ y continúan con +alguna de las siguientes opciones: + +Comando |Descripción |Respuesta +-------------------+-----------------------------------------+------------------ +list |Obtiene una lista de las las |Lista de transmi- + |transmisiones activas. |siones activas + | |(host, puerto, + | |uptime, etc). +-------------------+-----------------------------------------+------------------ +start//|Comienza la transmisión al en el |Nada. + |puerto al en el puerto . | +-------------------+-----------------------------------------+------------------ +stop// |Finaliza la transmisiónal en el |Nada. + |puerto . Si se omite el , se | + |finalizan todas las transmisiones. | + +NOTA: Los nombres entre "<" y ">" denotan un argumento. Características adicionales (a desarrollar si el tiempo lo permite): @@ -158,5 +175,15 @@ Es posible hacer que el comando /transmissions/start sin argumentos comience una transmisión por 'broadcast' de la planta para todo aquel que quiera monitorearla desde la red en la que se haga el 'broadcast'. +Atajos de comandos: +------------------- +Se trata de 'alias' de comandos. Por ejemplo que '/' de un estado del server +(/sever/status), que /plant de una lista de plantas, etc. + +Valores por defecto: +-------------------- +Para los comandos que requieren argumentos se podría asumir valores por defecto +en caso de faltar alguno. + vim: set et ts=4 sw=4 tw=80: -- 2.43.0