University of Guelph developing applications with D2L WebServices & SSO Zdenek Nejedly1, Hugh Smith1, Matt Searle1, Cindy Wells2, Bill Teesdale2, Trevor Pemberton3, Kyle Mackie3 1Computing & Communications Services of Physics 3Teaching Support Services 2Department Session Outline • Transferring grades with D2L Web Services – – – – Physics Quizroom environment Synchronizing student grades (past & present) Toolkit for rapid application development Lessons learned • Expanding the UofG Single Sign On – SSO integration patterns – SSO middleware – SSO with Desire2Learn • Take home message Physics Quizroom • About 2,400 students per semester • Flexibility in scheduling study and exam time • Students required to: – pass pre-tests in D2L (on-line) – write quizzes in the Physics Quizroom (on-site) - Successful pre-tests required for admission to quizzes - All marks to be in the D2L Grade synchronization: past & present • Large enrolments requires an efficient process and automation, e.g., swipe cards, grade synchronization between D2L and Quizroom,… • Grade synchronization: – 2003: WebCT – via a smart http client – 2006: Blackboard – via the BB Web Services – 2009: Desire2Learn – via the D2L Web Services Developing with D2L Web Services • Desire2Learn Web Services - API for management of – users – courses – grades • • • • WS overhead, e.g., SOAP, WS-Security Platform independent (examples for .Net and Java) Our dev platform: JSE 1.6/JEE 1.5, NetBeans Our run-time platform: Linux RedHat Challenges existing system in production since 2003 supportability performance expectations reliability availability internet communication vendor’s API defined protocol reality real-time bulk updates production timelines Challenges: performance • Core requirement: avoid changes to legacy systems, i.e., maintain the original interface (2003) • Implication: process full gradebook during each synchronization (10,000 values every 15 minutes) • Reality (D2L WebServices API): – Support for single update not the entire class at once – References instead of actual values – Single call requires 1-2 seconds to complete – Concurrency limited – Timeout and usage limits on the auth token • Challenge: complete a 2-hour process in 15 mins Solutions: performance • Cache the grade values and let through only the modified values • Internal userids: cache the reference-value mapping • Cached in local relational database (MySQL) • WS Security – token manager tracking age & usage • All encapsulated in the Software Development Toolkit (if interested let us know) • Additional monitoring and process control in the OS Outcomes: Improved Performance The total process time reduced a) downloads: from 30-60 minutes to 5-10 minutes b) uploads: from 1-2 hours to 1-2 minutes Q? D2L & SSO @UofGuelph • 2nd year of SSO integration - majority of the campus community now exposed to SSO – students (via LMS – Desire2Learn) – employees (via the Pay & Pension Link service) • Technology: Sun Access Manager 7.1 (Oracle) • Components: – central SSO server – individual Policy Agents SSO integration patterns @UofGuelph Agent directly on the protected service Session initiated by a middleware Agent on the proxy Session initiated via Shibboleth SSO integration patterns @UofGuelph Agent on the proxy Agent directly on the protected service e.g., departmental webservers, campus webhosting Session initiated by a middleware Session initiated via Shibboleth SSO integration patterns @UofGuelph Agent directly on the protected service Agent on the proxy e.g., Oracle/financial applications Session initiated by a middleware Session initiated via Shibboleth SSO integration patterns @UofGuelph Agent directly on the protected service Session initiated by a middleware e.g., E-Academy, D2L, Pay & Pension Agent on the proxy Session initiated via Shibboleth SSO integration patterns @UofGuelph Agent directly on the protected service Session initiated by a middleware Agent on the proxy Session initiated via Shibboleth e.g., Drupal, library access Bringing D2L to SSO • CourseLink.uoguelph.ca – hosted by D2L off campus • Integration choices: – PA directly – subject to code review – Reverse proxy – shared hosting challenges – via Shibboleth – in progress, not yet available • Solution: D2L Single Sign On API • Guelph module designed in java on SSO middleware D2L SSO – tech overview • Logging into D2L with SSO (typical) 1. Authenticate (Sun Access Manager) 2. Middleware: request a unique token and set a cookie 3. Redirect the user to D2L with the token • Signing out of D2L (UofGuelph specific) 1. Destroy D2L session (D2L hotfix) 2. Redirect to SSO middleware 3. Redirect to SSO logout or D2L (session cookie) • Sessions initiated by SSO but managed by D2L SSO middleware • • • • • • Linux on VMware Load-balanced cluster SSO via reverse proxy Multiple tomcat instances Custom java apps (D2L, Pay&Pension) Shared hosting platform for various SSO applications D2L SSO challenges & solutions • Single Logout – D2L hotfix, custom code – communication/user education • Internet comm issues – add a quality assurance layer • General SSO challenges for a mission-critical service – expecting 100% browser compatibility Take-home message • • • • Cache objects when possible Consider toolkits to simplify the WS API Plan for Internet communication issues Choose the specific approach to SSO case-by-case Acknowledgements • Richard Gorrie and the TSS LTCI team • Mark Sloggett, Bosco Tsang & CCS Managed Servers • Leo Song and Dennis Xu & CCS Networking and Security • Kent Hoeg and the Management Team • Desire2Learn and Sunwapta • Funding provided by UofG CCS, TSS, and the Physics Department • Support of the UofG campus community thank you