All staff who can work at home should continue to do so. Only with an explicit request from a supervisor should a staff member return to campus. For more information, review COVID-19 Workplace Guidance.
Yale Degree Audit (DegreeWorks) technology upgrade
November 15, 2018
Yale Degree Audit is a student application suite that tracks a student’s progress towards graduation. Using data exported from the Banner student information system, it compares a student’s coursework to the prescribed requirements for a degree and tracks progress toward the completion of those requirements. This is particularly helpful during registration, because the degree audit helps steer students’ selection of courses.
On Thursday, November 8, 2018, we upgraded the Yale Degree audit system from version 4.1.4 to 5.0.1. We had not upgraded the system since 2016, and considerable changes had been made to the system architecture since that last upgrade. The old version was a 3-tier Linux / Apache / Oracle structure, and we upgraded every aspect of the existing platform. While we stayed on Red Hat Enterprise Linux (RHEL) for the business logic tier, we migrated from RHEL 5 to RHEL 7. The database tier was upgraded from Oracle 11g to Oracle 12.1. The presentation (web) tier was upgraded from a mix of HTTP and Java web servers to a load balanced group of 4 virtual Tomcat servers, running behind an F5 load balancer. This was possible because the vendor re-wrote most of their applications to be deployed as JAR or WAR files on the Tomcat servers. For those of us old enough to remember Nintendo or even Atari game systems, JAR and WAR files are a little like game cartridges that can be plugged into the Tomcat server – and upgrading can be as simple as swapping out the old WAR file for the vendor’s upgraded WAR file. Having paid the technical debt we’d built up over the last two years, we are well positioned for the upcoming “tock” feature upgrade of the vendor’s tick-tock release cycle.
In the old system, we used an application called Scribe that was installed on a user’s desktop. Scribe was the way that a person in the Registrar’s office translated the academic requirements (for example, the Yale College Programs of Study) to a pseudo-code that could be interpreted by the degree auditing background process. Installing Scribe required an Oracle client to be installed at the same time, which complicated the install. In the new version, Scribe is now deployed as a web application which can be accessed from any machine on campus. This makes it much easier to open it up to other schools at Yale University who have interest in extending the degree audit to their students.
A particularly nice feature of the upgraded system is a change to the way modifications can be made to the look and feel of the application. We often make modifications to our system – sometimes it is just to put a Yale logo in a corner of the screen, and sometimes it is something more complicated to accommodate a Yale-specific policy. The vendor introduced a new application called Composer, deployed as a web application, which allows an authorized user to make changes to the code on the page without involving a developer. We can edit the code for the page in the Composer application and when we save it, it broadcasts the changes to all of the Tomcat java web servers. The next person who logs in or refreshes will see those changes. Previously, we would have needed to directly edit files on the web server in a text editor, and then restart the web server to have the changes take effect. The Composer application and the change in the system architecture allows us to respond quickly to requests from the user base.
Aside from Scribe and Composer there are four other web applications in the Yale Degree audit suite: an administrative shell application (“dwShell”), a proxy server for authentication and security (“Gateway”) and the main user-facing applications (“Dashboard” and “Planner”). These are all deployed as either WAR or JAR files. There is a lone remaining administrative application (“Transit”) which will be ported to a JAR file in the next feature release.