*4.2. Backend*

The RunningCoach server backend is written in Java and uses the Berkeley Telemonitoring framework as well. To communicate with the client nodes, the backend uses the Tele-Interfacing (TI) protocol with Transport Layer Security (TLS), as described in [44]. The backend receives the data from the client nodes in the form of data jobs, unpacks the jobs back into encapsulators using job handlers (conforming to the Berkeley Telemonitoring framework) and stores the data in a MySQL database. Each data job is attached to a subject identifier that is uniquely set to each runner in the app. The identifiers are used to identify the source of the data (Table 1). The subject identifier is stored in the database along with the corresponding data.
