Rice Sakai Deployment: Integration, Implementation, and Lessons Learned Angela Rabuck, Dean Lane and Omer Piperdi Rice University Agenda • Implementation – – – – Rollout Timetable Architecture Getting data from Banner to Sakai CAS & Kerberos Integration • Issues/Assumptions • User Data – – – – Usage Stats Customer Feedback Survey Results Training/Support Rice University ~3,000 undergraduates ~2,000 graduate students • Undergraduate student–to–faculty ratio of 5:1 • Median class size of 15 Why Sakai? • • • • WebCT Campus Edition 4.1.3.8 previously used Very low adoption - <10% faculty Max - 75 courses/semester using it Reasons for switch: – – – – – Licensing concerns Blackboard uncertainty Modifiable code Project sites Ability to interact with other instructional tools People Full time: Instructional Technologist Part time: Java programmer Oracle DB admin Web Developer System admin Our Setup • All Rice members receive Sakai userid and password • Guest accounts – Created by Admin – On-line guest account process available in future • Project sites – Faculty and grad students • By request • Not self serve – Undergrads • Can request with faculty sponsor • Ex: club site, study group, etc • 2 levels of Teaching Assistant and Member roles Assumptions • Group multiple sections with same instructor – SPAN 101 001/003 F06 – Multiple sections with no instructor not grouped • No accounts removed from Sakai – CAS/kerberos authentication will control Sakai login ability • Each course is term bound – CHEM 121 F06 – CHEM 121 F07 – Previous semester’s courses available • Reuse old materials in new course site Assumptions continued • Default 1 GB file resource limit for every site • Hardware or software load balancer – “sticky session” capability • Sakai DB Account same as CAS NetID or Kerberos principle • All Banner course data will contain either – a valid instructor – dummy instructor NO_INSTRUCTOR • No Banner data record will be available once that record is no longer valid • Students/etc added by professor unmanaged by scripts Rollout Timetable Summer ‘05 Fall ‘05 Pilot Sakai 2.0 4 courses Pilot Sakai 2.0 6 courses Spring ‘06 Pilot Sakai 2.1 16 courses 30 project sites For comparison: Summer ‘06 Production Sakai 2.1.1 30 courses 50 project sites Fall ‘06 Spring ‘07 Full Production Sakai 2.1.2 350 courses 130 project sites •3 WebCT courses WebCT server - ~75 max courses a semester Full Production Sakai 2.2.2 ? courses ? project sites Architecture • VM Servers – Load balancing • Netscaler • 2 servers currently • Add additional VM servers easily • Oracle Database • NAS – BlueArc Titan – NFS mount Sakai Hardware Architecture Data Load Programs • sakai_load_users - creates the main sakai account for each user. Does not assign the user to any sites. • sakai_load_courses - creates all of the new course sites in Sakai. This is the process that assigns the Sakai site ID for the course. • sakai_load_students - adds/removes the students from each of the courses that they are assigned to. Data Flow Sakai_load_users • Creates the main sakai account for each user • Does not assign the user to any sites • Creates random extremely long passwords, which no one ever knows – Since we use CAS and kerberos, local password hidden from user Sakai_load_courses • Create every course for next semester • Assigns the Sakai site ID for the course • It gathers all related courses based on cross listing or section and instructor • Load all defined instructors in course sites • Load any dept admins into Dept course sites • Add a standard set of basic tools to every course site – Home, Announcements, Syllabus, Schedule, Resources, Discussion, Assignments, Site Info • Mark course sites as “unpublished” Sakai_load_students • Adds/removes students to/from their course sites • Twice daily update of course rosters in Sakai • Verifies that student didn’t just change sections before deleting students Web Services Used • • • • • • • • • • addMemberToSiteWithRole() • addNewRoleToAuthzGroup() • allowFunctionForRole() • checkForSite() • checkForUser() checkForMemberInAuthzGroupWithRole() removeAllRolesFromAuthzGroup() removeMemberFromAuthzGroup() setRoleForAuthzGroupMaintenance() addNewSite() addNewPageToSite() addNewToolToPage() addNewAuthzGroup() addNewUser() CAS and Kerberos • LOG-IN using NetID – All Rice members have NetID/password – Single Sign on • CAS (Central Authentication Service by JA-SIG) – Passwords already created • Non-Rice LOG-IN – Sakai DB • Admin, Test and Guest Accounts – Kerberos • Necessary for WebDAV authentication Database • sakai session expiration via cron job – Expires session if active over 24 hours – Remove session from SAKAI PRESENCE table • DB Backups – DB files stored on BlueARC NAS – Backing up files every 4 hours – Shutdown and take cold backup of oracle DB once a week • Cron job 3AM Saturday mornings Content Hosting • Binary uploads are stored on BlueARC - NAS – Two sakai servers mount to same storage for load balancing • Also for Melete and JForum uploads – Necessary for load balancing • File storage growth: – 350 courses and ~130 project sites • 2-4 GB/week Server Outage Notification • Nagios monitoring • pages sent to personnel if: – – – – – Sakai server down DB down storage down Sakai http not responding SSL Certificate expiration Load Balancing • Netscaler – Quickly add/remove servers – Automatic failover – Redirection to outage notification page – Can wean people off of one server for maintenance • No service outage Benefits • All user accounts automatically created • Self serve courses (unpublished) ready for instructor use – – – – – Faculty don’t need to contact IT to get course site Faculty don’t need to create a site Students added/removed automatically Instructor can add anyone they wish to their course sites Basic tool set added to every course • Home, Announcements, Syllabus, Schedule, Resources, Discussion, Assignments, Site Info • Ability to add departmental admin automatically to all dept courses Unresolved Issues • Handling manual creation of sites before Banner feed presents the data • Deleting accounts and all data associated with it • Removal/archival of old course material Gotchas • • • • • • Email tool issues every upgrade – If you are changing host name after the upgrade Db redo logs when creating courses (oracle) – creation rate of 50MB/min – Lot of CLOBs Takes a long time to create each course over web services – 1-2 minutes to create a course site Admin account getting added to all courses slowed down system – Took a long time for the admin account to display the top menu bar that contains all of the course names – May be an issue for departmental coordinators at later date when a few semester’s worth of courses are showing up Banner data started getting courses listed without the cross listing data. Caused a number of courses to be created that needed to be merged/deleted. Need to make sure that all data in Banner is “good” before running scripts! CAS client caches CAS server host IP Number of Accounts & Courses • Instructors – 1191 • Students – 6138 • Guests – 401 • Courses created F06 – 1709 • Courses created Sp07 – 1940 Usage Stats • Fall 2006 Published Courses – 350/1700 = 20% courses • Max users at one time – 425 • Max number of unique logins in a day – 1848 • Max number of total sessions in a day – 3854 • Total number of unique logins (June 2005 - 11/23/06) – 4846 Usage Stats Web Trends Stats • Avg page views/day – 30,458 • Most active day of week – Wednesday • Least active day of week – Saturday • Most active hour of day – 3:00pm - 4:00pm • Least active hour of day – 5:00am - 6:00am Faculty Survey Results 60 faculty responses I would recommend OWL-Space to a colleague. Are you planning to use OWL-Space in the future? Strongly Disagree 4% N/A 5% Disagree 4 2 5% Strongly Agree 27% Yes 1 Only with better support 2 Neutral 20% 1 Only if the software improves 2-and-3 No, I have no further need for OWL-Space Agree 39% 41 No, I do not feel comfortable using OWLSpace Faculty Survey Results Learning to use OWL-Space is Time to learn OWL-Space Very difficult 2% N/A 11% Very easy 13% N/A 12% Difficult 8% Not easy/not difficult 23% Easy 43% Very slow 2% Slow 6% Very Fast 13% Ok 36% Fast 31% Post online readings and other supplementary Post sample exams and quizzes for learning Give exams and quizzes online for grading Send announcement to my students Post an audio and/or video recording of lecture Post lecture outline or notes before the lecture Post lecture outline or notes after the lecture Publish an online calendar Post a syllabus online Faculty Survey Results 100% 90% 80% 70% 60% Have not used 50% Not valuable Valuable 40% Very Valuable 30% 20% 10% 0% Student Survey Results •526 student responses Academic Classification 25% 27% Freshman Sophomore Junior Senior Graduate student 14% 17% 17% Student Survey Results Learning to use OWL-Space has been: Difficult 1% Very Negative 2% Somewhat Difficult 6% Somewhat Easy 40% Please describe your overall experience Negative 10% Easy 53% Positive 72% Very Positive 16% Taking online assessments/surveys Accessing class announcements Keeping track of grades online Getting assignments back from instructors with comments Viewing assignments on line Accesssing course material in Resources section Calendar Student Survey Results 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% Did not use Not valuable Valuable Very valuable Project Sites • Fellowship and awards committee • Faculty search committee • curriculum review • student study groups • departmental sites – faculty only – faculty and students • student clubs • graduate student associations • orientation week coordination • grants • IT groups • research groups • researchers collaborating on books/articles • planning committees • student recruiting • departmental equipment documentation and usage scheduling • scheduling of psych experiment rooms • multi dept site with grad student peer review of journal articles Training Sessions • Training sessions specific for WebCT users spring ‘06 • Training/demo sessions beginning of fall ‘06 semester – 1 hour demo • here’s what it is and what it can do, with a few basics covered • ~50 users – 2 Drop in days • help available at any time 9am-5pm • low turnout – 3 hour in-depth training session • 10 users • Student training/demo session – Only 4 students showed up – No specific questions Training • • • • • • • • • 1-on-1 training sessions available with Instructional Technology Specialist or IT Trainer Professors like one hour demos that show them enough to get started Much lower turnout for longer sessions Prefer to call/email than read FAQ Rice News article about OWL-Space Demos at IT events Offered faculty and grad students project sites during pilot phase Technology Brown bag lunches On-line demo course with training/demo modules and other training materials available online to faculty/TAs Support • IT Help Desk – via phone, email or drop-in – 8am-8pm M-T, 8am-5pm F; 2pm-5pm Su • Instructional Technology Specialist – via phone and email during working hours and beyond • Online FAQ – most professors just contact instead of reading User Feedback - The Good – “I really love Owlspace!!” – “This is really cool” – “Let me first send my congratulations to you and the group you represent. I found the owlspace pages extremely easy and quick to use.” – “[OWL-Space] has become a wonderful resource for our students” – “Despite the complaints I like OwlSpace and will continue to use it. It’s certainly a step in the right direction but is a work in progress” – “And OWL-Space provides an excellent vehicle for distributing non-copyright protected material without wasting paper or forcing students to pay for a coursepack.” (Rice Thresher - 9/29/06) - 1 month after full rollout – “I have really enjoyed working in OwlSpace” – “First, let me just say, I think OwlSpace has been a great addition this year, and for the most part, my students are loving it!” – “Owlspace has become a well-integrated tool within our laboratory!” – “Overall we love using OwlSpace and the updates (such as the Message Center) just make things easier and easier to use.” User Feedback - The Bad – “I must admit that I’m really annoyed about the quiz/question feature in OwlSpace. It is wasting a HUGE amount of time, both for me and my TAs.” – “I am about ready to throw OwlSpace to the ether! I cannot manage groups, I want to make a TA group to email and an Instructor group to email and the strangest things keep happening:” – “I’m really disliking OWL-Space. The work-around we talked about on Friday, for the fact that we aren’t allowed to have point values in assignments be greater than the max points, and the fact that there’s no way to add an assignment grade for a student who didn’t submit it on OWL-Space, is problematic.” – “I hate the confusion this is causing, and the extra work I and the TA have to do to make up for the shortcomings of the system.” User Feedback - The Colorful Summary • Full production – VM servers • Banner course data – Custom scripts • Usage Data & Customer Feedback – Overall good, some negative – Stronger usage than expected • To be continued . . . Extra Details • Extra Details about our architecture and scripts are attached Contact Information • Angela Rabuck – adehart@rice.edu • Dean Lane – dlane@rice.edu • Omer Piperdi – omer@rice.edu • sakai@rice.edu Hardware Specs • • SunFire 4100 – 2 single core AMD Opteron Processors 2.8 GHz – 8 Gigabytes of RAM – Red Hat Enterprise Linux 4 – Oracle 10g HP DL385 (Middleware) – 2 single core AMD Opteron Processors 2.6 GHz – 8 Gigabytes of RAM – Red Hat Enterprise Linux 4 – PostgreSQL 8.1 – Java 1.5/Perl 5.8.4 • HP DL385 (Sakai) – 2 single core AMD Opteron Processors 2.6 GHz – 8 Gigabytes of RAM – Red Hat Enterprise Linux 4 – VMware GSX Server 3.2 Hardware Specs • • VMware Guest – Red Hat Enterprise Linux 4 – 3 Gigabytes of RAM – 20 Gigabytes of local disk space (containing Operating System + Sakai Installation) – Sakai 2.1.2 – Tomcat 5.5.12 – Java 1.4.2 BlueArc Titan NAS Storage System – used to store the Oracle Databases (via NFS) – used to store external files for Sakai (via NFS) • Netscaler 7000 – 6.1 Firmware – Sticky Sessions – Automatic load balancing – Automatic failover – Accepts access to ports 80 and 443 (Thawte signed certificate) – All traffic to the Sakai servers is over port 443, using a self signed certificate Sakai Load Users Graphic •added - the record is newly added to the Banner view, add entry to Sakai •modified - the record has changed since the last time it was seen, change entry in Sakai •seen - the record was seen in the Banner view but unchanged •frozen - the record has not been present in the Banner view in the last day •locked - the record has been frozen for over 4 days, prepare for removal •deleted - the entry in Sakai has been removed Load Users Field Origin a l Source Middleware DB (Person Registry ) Banner PPAIDEN Banner PPAIDEN Middleware DB (Person Registry ) Banner Source Field Description account_name The netId for the user SPRIDEN_FIRST_ NAME The user’s first name The user’s last name (conti n ued ) Banner PEAEMPL PEBEMPL_EMPL_STATUS (conti n ued ) PEBEMPL_ECLS_CO DE (conti n ued ) Banner PEAEMPL Banne r PEAEMPL, PEAREVW, NBAJOBS THRCS DB password load script randomly generated netId firstName lastName emailAddress type (conti n ued ) SPRIDEN_LAST_NAME The user’s primary email address Multiple fields PEBEMPL_TERM_DAT E, PERREVW_REVT_DATE, NBRBJOB_END_DATE THRCS DB_STU_STATUS Unknown, Student, Staff, Instructor active/inactive employe e record employe e job code employe e termination date active/inactive student record very long random value Copy Table Flow Sakai Load Courses Column Name swvitsi_term_code swvitsi_ter m_desc swvitsi _crn swvitsi _subj_code swvitsi _subj_desc swvitsi _crse_numb swvitsi _section swvitsi_ti tle swvitsi _long_title swvitsi _sect_coll_code swvitsi _sect_coll_de s c swvitsi _sect_dept_code swvitsi _sect_dept_desc swvitsi _sect_enrolled swvitsi_ xlst_group swvitsi_ xlst_enrolled swvitsi _in structor_pidm swvitsi _in structor_id Description character varying(6 ) character varying(30 ) character varying(5 ) character varying(4 ) character varying(30 ) character varying(5 ) character varying(3 ) character varying(30 ) character varying(256 Attributes not null Data Fall 06 not null 21063 BIOS Bioscienc es 425 001 PLANT MOLECULAR GENETICS PLANT MOLECULAR GENETICS AND DEVELOPMENT NS ) character varying(4 ) character varying(30 ) character varying(4 character varying(30 character varying(4 character varying(2 character varying(4 character varying(8 character Example 200710 School of Natural Sciences BIOS ) Bioscienc es ) 5 ) L1 ) 5 ) not null 211 ) E065 4 3210 Column Name Description swvitsi_primary_ind character varying(1 ) character varying(60 ) character varying(15 ) ch aracter varying(15 ) character varying(90 ) character varying(6 ) character varying(35 ) character varying(512 ) swvitsi _in structor_last_name swvitsi _in structor_first_name swvitsi _in structor_middle_name swvitsi _in structor_email swvitsi _in structor_dept_code swvitsi _in structor_dept_desc swvitsi _in structo r_list swvitsi_time_location swvitsi_ptrm_code swvitsi_ptrm_start swvitsi_ptrm _end swvitsi _credits character varying(256 character varying(3 ) timestamp without time zone timestamp without time zone character varying(4 ) ) Attribu t Example es Y Data Bartel Bonnie - null user@rice.edu 008373 Biochemistry & Cell Biology Bartel, Bonnie; Braam, Janet 01:00PM 02:15PM TR TBA T BA 1 - null - - null - - null - Banner Sources Table GOREMAL Custom/Banner Banner SCBCRSE Banner SIRASGN Banner SPBPERS Banner SPRIDEN Banner SSBSECT Banner SSBXLST Banner SSRXLST Banner STVCOLL Banner STVDEPT Banner STVSUBJ Banner STVT ERM Banner THRCS DB Custom (RPTMGR ) Description Person E - mail repeating table. Course General Information Base Table Faculty Member Instructi onal Assignment Repeating Table Basic Person Base Table Person Identificati on/Name Repeating Table Section General Information Base Table Cross Lis t Enrollment Information Base Table Cross List Section Repeating Table College Validation Table Depar t ment Validation Table Subject Validation Table Term Code Validation Table This table is used to build the feed to the campus services database and Rice web directory. Columns added to view Column owl_chec ksum Description character varying(32 ) owl_source_code character varying(12 ) owl_course_site_id character varying(100 ) owl_status character varying(12 ) owl_last_seen_dat e timestamp without time zone owl_modified_date timestamp without time zone owl_added_date timestamp without time zone owl_dropped_date timestamp without time zone owl_created_date timestamp without time zone owl_deleted_date timestamp without time zone Example 68073a 4 91ac7c6c40dff3 6 2f3f26 5 60 4 banner BIOS- 425 - 525 - 00 1 - F06 added, m o dified, seen, frozen, locked, deleted 2006 - 10 - 1 2 15 :00: 0 5.714 2006 - 09 - 0 6 04 :00: 1 1.758 2006 - 06 - 1 6 15 :33: 1 4.08 - note - 2006 - 06 - 1 7 02 :01: 0 2.393 - note - Sakai Load Students Column Name swvitrg_term_code swvitrg_term_desc swvitrg_stu_pidm swvitrg_stu _last_name swvitrg_stu_ first_name swvitrg_stu_middle_name swvitrg_stu_r ice_id swvitrg_crn swvitrg_subj_code swvitrg_crse_ n umb swvitrg_section swvitrg_status_date Description character varying(6 ) character varying(30 ) character varying(8 ) character vary ing(60 ) character varying(15 ) character varying(15 ) character varying(9 ) character varying(5 ) characte r varying(4 ) character varying(5 ) character varying(3 ) timestamp without time zone Attributes not null Example 200710 Fall 2006 not null 03939 4 82 User Sally Bogus S0123 4 567 not null 39483 BIOS 425 001 2006 - 04 - 2 1 17:42: 0 6 Table SFRSTCR Custom/Banner Banner (SATURN ) SPRIDEN Banner (SATURN ) SSBSECT Banner (SATURN ) STVRS TS Banner (SATURN ) STVT ERM Banner (SATURN ) Description Student Course Registration Repeating Table Person Identificati on/Name Repeating Table Section General Information Base Table Course Registration Validation Status Table Term Code Validation Table Column Name Example Description owl_chec ksum character ce178c072 8 6f57f8 0 466 9 ef091 e 973c d varying(32 ) owl_source_code character banner varying(12 ) owl_status character added, m o dified, seen, frozen, locked, varying(12 ) deleted owl_last_seen_dat e timestamp 2006 - 10 - 1 7 15 :00: 0 8.235 without time zone owl_modified_date timestamp 2006 - 09 - 2 1 04 :07: 1 0.337 without time zone owl_added_date timestamp 2006 - 08 - 3 1 15 :22: 4 5.495 without time zone owl_dropped_date timestamp without time zone owl_created_dat e timestamp 2006 - 09 - 0 1 02 :10: 3 2.325 without time zone owl_deleted_date timestamp without time zone CAS CAS Database Script begin -update sakai_session set session_end = current_timestamp where session_start = session_end and (current_timestamp - session_start) >= interval '1' day(1); -delete from sakai_presence where session_id not in (select session_id from sakai_session where session_start = session_end); -insert into sakai_event_bak select * from sakai_event where (current_timestamp - event_date) >= interval '1' day(1); -delete from sakai_event where (current_timestamp - event_date) >= interval '1' day(1); -commit; -end;