[[PageOutline]] = GeniusWeb RunServer This is the homepage of the GeniusWeb run server. The GeniusWeb main page is [https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWeb here]. The run server can run sessions and tournaments as specified. == Installation * Install your apache-tomcat 8 installation ​https://tomcat.apache.org/download-80.cgi. You can re-use an existing installation. * Download the runserver war file from [http://artifactory.ewi.tudelft.nl/artifactory/webapp/#/artifacts/browse/tree/General/libs-release-local/geniusweb/runserver the artifactory]. Go into the latest version of the runserver and download (right click) the war file. NOTICE: your browser must have cookies enabled to access the artifactory. * Copy the downloaded war file into the tomcat webapps directory * (Re)start tomcat After (re)starting tomcat your local profilesserver should be up and running. = Using the GUI After installing and starting, go to ​http://localhost:8080/runserver-X.Y.Z (replace X.Y.Z with the version you installed). You should get this page [[Image(home.png)]] From here you can start a session or tournament, view the currently running negotiations and view the logs. == Running a Session To run a session using the new-session GUI : * Go to ​​http://localhost:8080/runserver-X.Y.Z (replace X.Y.Z with the version you installed) and click on "new session". * If you get the message "server closed the connection" this indicates that the profilesserver and partiesserver URLs are not valid * If necessary, enter a valid profilesserver URL in the domain/profile server field * If necessary, enter a valid partiesserver URL in the parties server field * Inside the Participants area, select the party and profile for the first party * In the Parameters area, you can add optional parameters, like {{{ "a":1,"b":"false" }}}.Basically a json dictionary where the outer curly brackets are already placed for you. * click add * Repeat that until all parties have been added. * Press the "Start Session" button. [[Image(newsession.png, 90%)]] Some time after starting, depending on the deadline you set, links are provided to the log file, and to a visualizer that can plot the utilities of the bids recorded in the log file. [[Image(sessioncompleted.png, 70%)]] If you click on "view the log file" you get an exact log of all the actions taken by the parties. Notice that in the SAOP protocol, this log file becomes available only after the session has been completed. You can click on "render a utilities plot" to show a graphical representation of the utilities of all the offers made in the session, as in the figure below. Notice that this is only possible if (1) the log file is already available (2) the profiles are publicly available (3) the profiles are a UtilitySpace. [[Image(utilplot.png, 70%)]] The information made available about the running session is determined by the protocol. For SAOP, there are currently two ways to check the progress on the running session * Check the output of the tomcat web server (eg in catalina.out) * Check the log files written by the protocol. In general log files are not directly available, because this information could be abused by the negotiating parties. == Run a Tournament To run a tournament using the new-tournament GUI : * Go to ​http://localhost:8080/runserver-X.Y.Z (replace X.Y.Z with the version you installed) and click on "new tournament". * Select N: the number of parties in each session. * enter a valid profilesserver URL in the domain/profile server field * enter a valid partiesserver URL in the parties server field * Inside the Profiles area, select a profile in the Profile combobox and click add * Repeat the last step until all needed profiles have been added. Give at least N profiles * Inside the Parties area, select a party in the Party combobox and click add * Repeat that until all parties have been added. Give at least N parties * Press the "Start Tournament" button. [[Image(https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWebRunServer/raw-attachment/wiki/WikiStart/runtournament.png, 60%)]] == The source code You can read the source code through the "Browse source" button at the top of this page. You can check out the source code through svn with {{{ svn checkout https://tracinsy.ewi.tudelft.nl/pub/svn/GeniusWebRunServer/ }}} = Communication protocol This section deals with the communication protocols with the runserver. These may be relevant when you need to communicate directly with it, e.g. when you build your own GUI or start up your own sessions and tournaments from a script. Other implementations of a runserver should adhere to the same communication protocols to ensure compatibility with GeniusWeb. === Run Negotiation This section describes the [source:/src/main/java/geniusweb/runserver/RunNego.java RunNego] service. It is available at {{{http:..:8080//runserver/run}}}. This service starts up and runs a complete Nego (session or tournament) when it is accessed (http get or post). To start a negotiation, the http get must include a JSON-serialized [https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWeb/browser/protocol/src/main/java/geniusweb/protocol/NegoSettings.java geniusweb.protocol.NegoSettings] header. The contents of NegoSettings depends on the type of session/tournament that is to be run and is determined by the protocol. For some more discussion please refer to the [https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWeb/wiki/WikiStart#NegoSettings GeniusWeb core wiki page]. === View Running Negotiations The websocket address {{{ws:..runserver-X.Y.Z/websocket/running}}} sends updates of the current list of running negotiations. The list is sent as a JSON List of strings, each string being the negotiation ID of the running session. Every time the list changes, a new complete list is sent to clients listening to the websocket. == Viewing the outcome of a negotiation Logs are available through {{{http:..:8080//runserver-X.Y.Z/log}}}. The filenames are the Negotiation IDs (shown in the popup after starting a negotiation) extended with ".json". A log file usually is created only after the negotiation (session or tournament) completed. Protocols may opt to write these more frequently but since these logs are public they could be abused by parties, to see what their opponents are doing. == Viewing general info General information can be retrieved using {{{http:..:8080//runserver/info}}}. It returns a [https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWeb/wiki/WikiStart#serverobjects ServerInfo object]. == Using the source code == You can download the source repository of rhe java implementation. Note that you don't need this if you just want to use the run server to run sessions or tournaments. {{{ svn checkout https://tracinsy.ewi.tudelft.nl/svn/GeniusWebRunServer/ }}} Since this is a tomcat web application, you need Eclipse Enterprise edition if you want to run this from Eclipse. Also, to checkout from Eclipse, you need to prepare Eclipse for this. Check https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWeb It is maven based so you only need maven to compile the code.