TODO-1- Documentacion Documentacion de usuario/administrador y usuario/programador-tol TODO-2- Documentacion Documentacion de desarrollador TODO-3- TEST Test en varios servidores. Apoyarse en el test de producto de matrices. TODO-4- ENHANCEMENT, hacer amigos rmtps <--> tolsh Dotar al servidor RmtPS de un protocolo de control de tolsh. Una idea puede ser algo asi: - RmtPS se ejecuta como un daemon en la maquina servidora - RmtPS tiene un archivo de configuracion que entre otras aspectos puede contener una lista de puertos donde arrancar servidores tolsh. - Un cliente tiene una lista de ordenadores del cluster de calculo y el puerto donde el daemon RmtPS esta escuchando. La primera comunicacion es pedirle al RmtPS que arranque los servidores y que nos de los puertos donde estan escuchando. Esto puede quedar englobado en una funcion del API que podemos denominar TolServerInit. - Un cliente arranca el tolsh a traves de RmtPS y recibe ademas el puerto donde el servidor tolsh atendera a peticiones escucha. TODO-5 ENHANCEMENT, hacer amigos tolbase <--> tolsh Dotar a Tolbase de la capacidad de dialogar con TolServer de la misma forma que tolsh lo hace. TODO-6 TEST/ROBUSTNES, RECONNECT Verificar que el protocolo de RECONNECT controla perfectamente todas las situaciones de excepcion que se presentan. Esto va en la linea de mejorar la robusteza del servidor. TODO-7 ENHANCEMENT/DIAGNOSTIC, informacion de errores. Facilitar informacion de errores que puedan producirse en la parte del servidor durante la evaluacion de una tarea. El protocolo TFINISH puede contener, ademas de ID de tarea, informacion adicional sobre el numero de errores y warnings. TODO-8 BUG, particionar el buffer en trozos El protocolo de comunicacion es orientado a buffer lleno. Esto puede conducir a una situacion de error cuando la expresion a evaluar se mayor que el tamaƱo del buffer. Una posible solucion seria adaptar el protocolo de comunicacion para que se pueda pasar la expresion particionada en trozos desde el cliente y el servidor se juntan, cuando este toda la expresion unida es que se procede a registrar la evaluacion. TODO-9 ENHANCEMENT, comunicacion de objetos TOL TolServerGetObj(Text host, Real port, Text grammar, Text name) en toltcl necesitamos algo como: tol::binget objref que retorna una imagen binaria del objeto tol::binput objref binvalue binvalue debe ser el resultado de un binget el binvalue lo pasaremos por los canales de comunicacion tolsh mantendra un cache de objref de forma tal que pueda atender a peticiones sucesivas del mismo objeto. el cache se podra (debera) invalidar por parte del cliente: TolServerInvalidateCache(Text host, Real port) tolsh deberia ser multithreaded asi si tol esta ocupado calculando este puede atender a peticiones incrementando asi la robusteza del protocolo de comunicacion entre el cliente y el servidor. TODO-10 Build, crear tclkit --thread-enable Es importante con vistas a mantener tol en un thread separado de tolsh, ver TODO-9. Ya esta creado en Linux. Falta Windows. TODO-11 Bug, protocolo binario Hay que cambiar el formato de los paquetes de comunicacion. Ahora mismo se interpretan basados en regexp lo cual es inapropiado para paquetes binarios. La solucion es usar 'binary format' para crear los paquetes y 'binary scan' para decodificarlos. TODO-12 Check/BUG RECONNECT Revisar en el codigo de tolclient/tolserver la parte relacionada a RECONNECT. TODO-13 Performance-C++ Implementar tolserver/tolclient en C? TODO-14 FEATURE TolServerTaskStatus Implementar TolServerTaskStatus para preguntar sobre el estado de una tarea.