Dynamic Learning
Experiment Interface Server


The Interface Server collects data from individual robots and other devices. It stores the data and forwards it to browsers and external client processes. It also manages the feedback interactions to the devices from external controllers.

The Interface Server is housed in an Enterprise Java Beans (EJB) container and written as a set of Java Beans. The basic  layout is shown in the Interface Server Schematic. The following is a simple description of the modules shown, starting from the bottom of the figure.


Video Server

The Video Server is not included in the EJB container at this time, but runs standalone on a Macintosh computer. As such it is considered to be another external device, similar to the Robot Cars. Its function is to record the progress of an Experiment, and to extract accurate position data for each of the mobile devices on the experimental table. The position data is recorded in the same database as the robot telemetry.


Robo Control Proxy

The control proxy is fundamentally the software that exists on the robot itself, plus a wrapper to communicate telemetry and receive commands from the Interface Server. The proxy may exist entirely on the robot, or in some other connected system. The method of connecting the robot to the proxy is device dependent, but the proxy uses Java RMI EJB interfaces to connect to the Interface Server.


Data Collector

The Data Collector receives telemetry from all devices in the system, translates it, and stores it in a database. Initially each device will have  its own Data Collector, but this is implementation dependent. Telemetry data from the Robo Control Proxies is in a simple XML format described here. The database uses JDBC to access and insert rows.


Feedback Controller

The Feedback Controller receives commands from external and internal processes,  translates them, and transmits them to the robot device. It also logs the commands  in the same database as the Data Collector. Initially each device will have  its own Feedback Controller, but this is implementation dependent. Command data to the Robo Control Proxies is in a simple XML format (not yet) described here. The database uses JDBC to access and insert rows.


C-Cubed

The Command, Control, Communications module coordinates behaviors between external control processes and the individual Feedback Controllers. It is pretty much a TBD thing for future development, but we want to make sure that the proper interfaces are available for development.


CloudScape Database

The telemetry and command storage mechanism is a Java based Object-Relational database called CloudScape. It runs external to the EJB container but is reasonably tightly coupled. The basic ER diagram and table schema are here. The system is driven by the creation of an 'Experiment' using a web browser interface. The new experiment creates a SampleData table with a unique suffix in its name. All collected data for the experiment is time stamped and inserted into this table. Each experiment's SampleData table may be searched, archived, and destroyed as needed. The remaining tables are used to store persistent device and data type information and normalize the schema.


Data Selector

The Data Selector receives  selection criteria used to search and retrieve specific data from the SampleData table for a particular Experiment. It formats the select statements, issues the JDBC commands, and  translates the results  into a usable format. If the client is a web browser the data is put into a simple XML table format described here. If the client is an external (or internal) process the data is returned as a list of Java objects (TBD).


Web Servlet

A web servlet is needed to connect the web server (also running external to the EJB server itself) to the system in order to browse data or issue commands. There will be a number of special case servlets to implement access functions.


System Monitor

The System Monitor module is a catch all for any necessary command and monitor functions needed by the Interface Server itself. It will collect whatever data and statistics are necessary and transmit them to a web browser (via a servlet) and accept commands from a browser or external process to control the operation of the Interface Server.


Web Browser

Standard web browsers will be used to monitor and control the Interface Server and Experiments. Screens will be made.


Mainframe Beowolf

The coyote Linux cluster will be used for offline processing. Suitable Java or Corba interfaces to the Interface Server will be provided (TBD).