Experiment Management System CSE 423 Final Report Presentation Industry Mentor: Jack Harris Group Members Aaron Kloc Jordan Harstad Robert Sorensen Robert Trevino Nicolas Tjioe Simple Overview What is our purpose? Why is this necessary? Create an application that will combine information from multiple data sources (experiments) into a central location. To provide convenience to the experiment administrator in accessing and managing the data. How will this be done? By use of a MySQL database as well as Java applications. Lab Photos Project Goal – Diagram Create an extensible network environment for integrating different hardware data collection systems used in research experiments To have a centralized information store of significant data collected from the multiple systems that are time synchronized. Device Device Terminal Device Admin Database Device Terminal Device Tasks/Problems 1. 2. 3. 4. 5. Create protocol specification for data to be passed between research collection system and the Experiment Management System (EMS). Design a Database for housing the experiment information Install all required support software for the EMS (OS, Web Server, Database). Produce a web based user interface for the EMS system that allows researchers control over experiments and consolidated research data. Create EMS server software that that can communicate to the Agents using this protocol and store information into a database 1) Create protocol specification for data to be passed between research collection system and the Experiment Management System (EMS). Solution: Using the Java programming language an admin can easily connect to an existing MySQL database by supplying an IP, a port number, a user name, and a password. 2) Design a Database for housing the experiment information Solution: A MySQL server will be created that can be connected to from a remote source. A routine within the database will sort incoming data from a port, into a table within the database. 3) Install all required support software for the EMS (OS, Web Server, Database). Solution: The EMS consists of three applications: 1) Server -MySQL -Java 2) Terminal -Java 3) Admin -Java Each application will be installed on the appropriate computers. Since Java is easily portable the only requirement will be that the latest version of Java and MySQL be installed on each machine. 4) Produce a web based user interface for the EMS system that allows researchers control over experiments and consolidated research data. Solution: Viewable experiment data will only be located on the MySQL server. This will allow an admin to view the data from a remote location and filter the data. The admin will also have the ability to start and stop new experiments. 5) Create EMS server software that that can communicate to the Agents using this protocol and store information into a database Solution: An application will be installed on an admin machine. If the machine is located on the same network as the database then the user can interact with the system, via a GUI, if a valid user name and password are supplied. Terminals And Devices Terminals And Devices Two main problems to contend with: - - Retrieve Data a. Devices b. Experiment Send Command a. Start Experiment b. Stop Experiment Terminals and Devices -Retrieving Data • • • • Generic Code puts data on to network that identifies mouse and keyboard Customize code to work for any device added Identify device by the port number it is on Timestamp is key Devices And Terminals -Retrieving Data Executable is launched Events on devices opens ports and sends information on to network Mouse/port 5333 Joystick/port 4500 Eyetracker/port 3700 Devices And Terminals -Sending Commands Application allows the computer to accept incoming commands from the server Current generic code allows the control of mouse and key board at distant end similar to remote desktop Configure commands to interface with experiments Devices And Terminals -Sending Commands Executable will need to be running on both machines Commands pertain to experiments Client Machine will listen on specified port Start Experiment Stop Experiment Listening for commands/port 4800 Begin Sending Data Stop Sending Data Server/Database Device Device Terminal Device Admin Device Terminal Database Device Design Requirements Central storage system Network capable Easy to use Server OS Web Server Database Management Agent Server Design MySQL Server Free Easy to use Easy to install Flexible Java compatible JDBC (Java Database Connectivity) Free Easy to use Easy to install Supports multiple databases Server Design Feasibility Test Code Feasibility Test Code import java.net.*; DatagramSocket MyClient; MyClient = new DatagramSocket(55555); InetAddress IP1=InetAddress.getByName("LOCALHOST"); packet = new DatagramPacket(sendBuf, sendBuf.length, Dest, DestPort); MyClient.send(packet); Possible Difficulties Network Traffic Socket Congestion Can a single thread handle a large amount of incoming traffic? Data Storage Can the local network handle a large amount of streaming devices? Can the database preserve all types of data sent? Data Querying Can data filters be applied effectively to a wide range of data types? EMS User Device Device Terminal Device Admin Database Device Terminal Device New User Create Experiment Query Builder String CurrentQuery = “SELECT EIDS.ID, EIDS.[Experiment ID], EIDS.Terminal, EIDS.Device, EIDS.Subject, EIDS.[Data Stream], EIDS.Timestamp, EIDS.Created, EIDS.Author FROM EIDS WHERE (((EIDS.Device)="Eye Tracker") AND ((EIDS.Subject)="Roger Nie"));” this.eIDSTableAdapter.Run(this.CurrentQuery); Accomplished Work Feasibility Test : store actual experiment data files into database and retrieve it later. We implement actual Java code to test our model. Skeleton of MySQL database setup. Currently we have the table for Eye tracking device set up. Programming Language : Java + JDBC driver (Portability). Network protocol : UDP. UDP offers speed as there is no error correction. Cont of Accomplished Work Data format between device and terminal The terminal will listen to certain ports for the incoming data traffic to store the data into respected tables in the database. Design System Use Case diagram Define the role of the users: researcher, administrators, etc. Different users will only have specific visibility to the experiment data. GUI Administration prototype to administer over the experiment. Start Exp -> Download -> Query Prototype Model: Actual model of how the whole system will work. What we have learned: Team communication Time management skills in a time work environment. Different protocols: UDP, TCP/IP. The advantage between each protocol and their actual implementation. Database Experience Most group members have none or little experience. Project Presentation Future Goals Design GUI interface for the users. (web or application) Adding more database tables as we will get more devices connected to the terminal. Testing: - System Testing (with different devices) - Integration Testing - Unit Testing - Validation Testing Create User Guide for our final product to be used as a reference by the researcher. Demo the final product to our industry mentor. Questions