Information for Technicians
GeniusWeb specification level:
- json based communication
- websocket connections for data that can change while running
- normal (http GET) connection for static data and service requests
General
- Java 8
- jackson based (de)serialisation
- Minimal external dependencies: only jackson for core functions
- All code publicly available
- Maven based dependency management and building.
- fully automated and standardized building of components
- full control of all versions of dependencies
- automatic download and linking of dependencies
- Standard project structure for easy understanding
- Use of maven allows tight integration into software IDEs such as Eclipse, IntelliJ and Netbeans.
- SVN based version control
- checkout of just the code that users need.
- Pre-compiled dependencies available through jFrog based artifactory
- Friendly user interface to allow manually checking details and fetching artifacts
- All code publicly available
- Debug down to the lowest levels
- Have the javadocs for the code
Web Services:
- Apache Tomcat 8
- simple pure javascript example interfaces
- illustrates the technology without the need to learn new technologies, paradigms, programming languages etc.
Protocol
- Allows parties to take new actions themselves (no need for having the turn)
- Parties can run anywhere as long as they conform to the communication protocols
- Allows new parties to join while session is running
- Can wait until there is space on the party servers
Profiles Server implementation
- Provides the latest version of domain and profile descriptions.
- get list of names of available domains and profiles
- GUIs to view this info
- Adding/removing profiles and domains by add/remove a jar file (requires admin access to the server).
Parties Server implementation
- Run instance of specific party on request
- Limited number of parties running at same time to ensure reasonable party performance
- get currently running parties and available parties
- GUIs to view this info
- Adding/removing parties by add/remove a jar file (requires admin access to the server).
Run Server implementation
- Runs protocols as requested
- negotiation result is stored in log file. This file can be read through normal (non-websocket) connections to avoid connection overloads.
- setup GUIs to create settings for session/tournament and to start them.
- GUI to list the currently running sessions
Technical documentation is available through
https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWeb