La arquitectura de comunicación cliente-servidor en el simulador Robot Soccer consiste en una dll (dynamic link library) por cada equipo que encapsula el comportamiento de los jugadores. El servidor Robot Soccer simula la física del ambiente y provee la comunicación robot-ambiente cargando la dll 60 veces por segundo.
La arquitectura descrita, aunque simple, cuenta con varias desventajas:
A) El equipo solo puede desarrollarse con herramientas que generen dll's de Windows.
B) Una dll solo corre en ambientes Windows por lo tanto el equipo de fútbol robótico solo puede funcionar en dichos ambientes.
C) La dll se carga 60 veces por segundo en el más rápido de los casos, pero este tiempo puede extenderse considerablemente si el equipo no libera la dll con lo que se hace más lenta la simulación (no hay un time-out por llamada a la dll).
D) Una dll impide utilizar ciertas técnicas para hacer evolucionar el equipo (como por ejemplo algorítmos genéticos) porque no provee un ambiente de objetos.
Los problemas descritos anteriormente pueden solucionarse extendiendo la arquitectura cliente-servidor de Robot Soccer.
La solución consiste en transformar el servidor Robot Soccer en un servidor TCP: el cliente se comunica con el server no ya a través de una dll sino por medio del protocolo TCP. El servidor transmite el ambiente al cliente (posiblemente en formato XML) y recibe el ambiente modificado como respuesta. Esto puede lograrse fácilmente y sin modificaciones en el servidor (transparencia) programando un server TCP simple en cada dll de equipo asignando un puerto distinto para cada uno.
Este acercamiento soluciona los problemas antes mencionados porque:
A) El equipo puede desarrollarse ahora con cualquier herramienta que soporte el protocolo TCP (sockets).
B) La herramienta de desarrollo no está confinada al ambiente Windows.
C) Puede definirse un time-out en el servidor así el equipo libera al simulador si no responde rápidamente.
D) Puede utilizarse algún ambiente de objetos (como Smalltalk) para implementar técnicas más avanzadas de evolución del equipo.
Además este esquema introduce otros aspectos ventajosos:
E) El equipo puede manejarse remotamente a través de la red (posiblemente desde lugares geográficos distintos).
F) El esquema se aproxima al de la liga RoboCup (que también utiliza un servidor similar) por lo que puede desarrollarse una capa de adaptación que permitiría intercambiar equipos entre ambas ligas (la liga RoboCup cuenta con un extenso repertorio de equipos exitosos de acceso público).
Como conclusión este framework independiza al equipo cliente de los detalles de implementación del servidor Robot Soccer, flexibiliza la arquitectura de comunicación cliente-servidor, la hace extensible y permite aumentar la calidad de desarrollo del equipo de fútbol dándole al programador la libertad de trabajar con su herramienta de preferencia.
Puede obtener el dll servidor TCP para Robot Soccer via CVS:
CVS_RSH = ssh
CVSROOT = :pserver:anonymous@cvs.umo.sourceforge.net:/cvsroot/umo
MODULE = morasotServer