In order to develop and deploy MyTimetable, some IT infrastructure is necessary. Below, we outline the requirements for an on-premise installation of MyTimetable.
Of course, Eveoh can also provide hosting for MyTimetable. In that case we will take care of the complete environment, see our SaaS / hosted page for more information.
Application server - hardware
Hardware requirements depend on the user count, server load and the results of a load test. As a minimum, we recommend for the application server:
- 2GHz+ dual-core machine
- 4GB+ RAM
- Enough disk space for the OS + 1 GB for the application + space for logs
- Separate machine or virtual server
Multiple servers can be used to provide high availability/failover, or to scale the application to handle more requests. In this case, it is necessary to take care of session affinity with a layer 7 load balancer, or session sharing should be setup in Apache Tomcat.
Next to a production environment, Eveoh highly recommends an acceptance environment. In this environment the client can test new versions of the software before deployment to the production environment.
For customers with an active support agreement, Eveoh will provide a development and test environment, as well as a source code repository.
Application server - software
MyTimetable is based on Java technology, and runs on almost every platform. The following platforms are currently supported by Eveoh, support for other platforms is available on request:
- Operating system
- Microsoft Windows 2012 / 2012 R2 / 2016 / 2019
- Debian Linux 9 / 10 / 11
- Redhat Enterprise Linux / Centos 7 / 8
- Ubuntu 18.04 / 20.04
- Adoptium Eclipse Temurin JDK 8 (MyTimetable 2019.15 and older)
- Adoptium Eclipse Temurin JDK 11 (MyTimetable 2019.16 and newer)
- Application server (For MyTimetable 2019.23 or older)
- Apache Tomcat 9.x (most recent version strongly recommended)
- Apache Tomcat 8.5.x (most recent version strongly recommended)
- Tomcat connectors
- NIO (recommended)
For customers with an active support agreement, Eveoh strongly prefers to have remote administrative access to the server(s) in order to perform software upgrades and to provide customer assistance in case any issues arise.
User profile database
A separate relational database is required to store user profiles and preferences. This database could be provided by a central database cluster, but could also be installed on a stand-alone server or on the abovementioned production and acceptance servers.
The following database servers are currently supported by MyTimetable, support for other database servers is available on request:
- Microsoft SQL Server 2017
- Microsoft SQL Server 2016
- Microsoft SQL Server 2014
- Microsoft SQL Server 2012
Database table space required will be ~10 KB per user. Daily transaction log size will not exceed 50% of the database size. Since the user profile is only written on changes and read once during a user session, database load will be low.
A separate, external, fully qualified domain name (for instance timetable.university.tld) is required. An HTTPS certificate is strongly recommended to secure authentication. iCalendar feeds will always use unsecure HTTP connections to provide maximum client compatibility. HTTPS uses TCP/443, HTTP uses TCP/80. It might be needed to provide another external, fully qualified domain name (for instance timetable-ical.university.tld) to allow unsecure HTTP connections. This is needed when, for example, a Microsoft ISA/TMG server gateway is in front of the MyTimetable application server(s).
MyTimetable can be installed on one or more application servers. When using multiple application servers, JGroups is used for cache replication. Please refer to the Clustering configuration page for more information on TCP ports used.
MyTimetable communicates with or or more Microsoft SQL Server database on TCP/1433.
The following authentication providers are currently supported:
- SAML (tested with Shibboleth, SimpleSAMLphp and SURFconext)
Alternate port numbers can be used if necessary.
Syllabus Plus: ERDB access
MyTimetable requires read access to the Scientia Enterprise Reporting Database (ERDB) containing the timetabling information. Load on this database will be high, since all timetabling information is read from this database. By default, in order to increase performance, MyTimetable will cache information from this database for up to five minutes.
Supported ERDB versions are:
- 3.11 (recommended due to bugs in earlier versions)
- 3.2.2 (not recommended, due to severe bugs in the updating process)
See Syllabus Plus ERDB improvements for more details.