ODIN’s Back End Server mediates between researchers (who use the ODIN website) and the participants (who use the ODIN App). The Server operates four distinct RESTful services:
- The ResearcherService, which manages all requests from and responses to researchers, communicated via the ODIN Researcher Website.
- The PhoneAppService, which manages all interactions with the ODIN App that is running on each participants’ phone
- The AdminService, which manages all requests from and responses to administrators, communicated via the ODIN Researcher Website.
- The DatabaseService, wherein each study has its own isolated database, containing both the definition of the protocol (questions and rules), but also all the data collected from registered participants.
The ODIN server runs on a dedicated machine, behind a secure gateway configured to allow transfers of data into the server from authorized phones, but no possibility of data transfer in the reverse direction (out of the server).Further details on these components are given below:
- The ResearcherService:
- The PhoneAppService:
- The AdminService:
- The DatabaseService is implemented using a MySQL service. Within it, a separate instance of a database for each study, providing isolation and security. The common schema of each per-study database is shown below:
In addition, the Back End Server maintains a global MySQL database for the metadata associated with the ODIN system as a whole. The schema of this global coordination database is shown below: