rice sakai deployment: integration, implementation, and lessons learned angela rabuck, dean lane and...
TRANSCRIPT
Rice Sakai Deployment: Rice Sakai Deployment: Integration, Implementation, and Integration, Implementation, and
Lessons LearnedLessons Learned Angela Rabuck, Dean Lane and
Omer PiperdiRice 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
• Undergraduate student–to–faculty ratio of 5:1
• Median class size of 15
~3,000 undergraduates~2,000 graduate
students
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
Java programmer
Full time:Instructional Technologist
Oracle DB admin
Web Developer
System admin
Part time:
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
Summer ‘05Summer ‘05 Fall ‘05Fall ‘05
Rollout Timetable
Spring ‘06Spring ‘06 Summer ‘06Summer ‘06 Fall ‘06Fall ‘06 Spring ‘07Spring ‘07
PilotSakai 2.04 courses
PilotSakai 2.06 courses
PilotSakai 2.116 courses30 project sites
ProductionSakai 2.1.130 courses50 project sites
FullProductionSakai 2.1.2350 courses130 project sites•3 WebCT courses
FullProductionSakai 2.2.2? courses? project sites
For comparison: WebCT server - ~75 max courses a semester
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 Results60 faculty responses
Are you planning to use OWL-Space in the future?
41
1
2
2
4 1 Yes
Only with better support
Only if the softwareimproves
2-and-3
No, I have no furtherneed for OWL-Space
No, I do not feelcomfortable using OWL-Space
I would recommend OWL-Space to a colleague.
Disagree5%
Neutral20%
Agree39%
Strongly Agree27%
N / A5%
Strongly Disagree4%
Faculty Survey ResultsLearning to use OWL-Space is
Difficult8%
Not easy/not difficult
23%
Easy43%
Very easy13%
N / A11%
Very difficult2%
Time to learn OWL-Space
Very slow2%
Slow6%
Ok36%
Fast31%
Very Fast13%
N / A12%
Faculty Survey Results
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Post a syllabus
online
Publish an
online calendarPost an audioand/or videorecording of
lecture
Post lectureoutline or
notes beforethe lecturePost lecture
outline or
notes after the
lectureSend
announcementto my students
Post onlinereadings and
other
supplementary
Post sampleexams andquizzes forlearning
Give examsand quizzesonline for
grading
Have not used
Not valuable
Valuable
Very Valuable
Student Survey Results
•526 student responses
Academic Classification
27%
17%
17%
14%
25%
Freshman Sophomore Junior Senior Graduate student
Student Survey Results
Learning to use OWL-Space has been:
Easy53%
Somewhat Easy 40%
Somewhat Difficult
6%
Difficult1%
Please describe your overall experience
Very Positive16%
Positive72%
Negative10%
Very Negative2%
Student Survey Results
0%10%20%30%40%50%60%70%80%90%
100%
Calendar
Accesssing course
material in Resources
section
Viewing assignments
on line
Getting assignmentsback from instructors
with comments Keeping track of
grades onlineAccessing classannouncements
Taking online
assessments/surveys
Did not useNot valuableValuableVery 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– [email protected]
• Dean Lane– [email protected]
• Omer Piperdi– [email protected]
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 UsersField Original
Source Source Field Description
netId Middleware DB (Person Registry)
account_name The netId for the user
firstName Banner - PPAIDEN
SPRIDEN_FIRST_NAME The user’s first name
lastName Banner - PPAIDEN
SPRIDEN_LAST_NAME The user’s last name
emailAddress Middleware DB (Person Registry)
The user’s primary email address
type Banner Multiple fields Unknown, Student, Staff, Instructor
(continued) Banner - PEAEMPL
PEBEMPL_EMPL_STATUS active/inactive employee record
(continued) Banner - PEAEMPL
PEBEMPL_ECLS_CODE employee job code
(continued) Banner - PEAEMPL, PEAREVW, NBAJOBS
PEBEMPL_TERM_DATE, PERREVW_REVT_DATE, NBRBJOB_END_DATE
employee termination date
(continued) THRCSDB THRCSDB_STU_STATUS active/inactive student record
password load script randomly generated very long random value
Copy Table Flow
Sakai Load Courses
Column Name Description Attributes Example Data swvitsi_term_code character
varying(6) not null 200710
swvitsi_term_desc character varying(30)
Fall 06
swvitsi_crn character varying(5)
not null 21063
swvitsi_subj_code character varying(4)
BIOS
swvitsi_subj_desc character varying(30)
Biosciences
swvitsi_crse_numb character varying(5)
425
swvitsi_section character varying(3)
001
swvitsi_title character varying(30)
PLANT MOLECULAR GENETICS
swvitsi_long_title character varying(256)
PLANT MOLECULAR GENETICS AND DEVELOPMENT
swvitsi_sect_coll_code character varying(4)
NS
swvitsi_sect_coll_desc character varying(30)
School of Natural Sciences
swvitsi_sect_dept_code character varying(4)
BIOS
swvitsi_sect_dept_desc character varying(30)
Biosciences
swvitsi_sect_enrolled character varying(4)
5
swvitsi_xlst_group character varying(2)
L1
swvitsi_xlst_enrolled character varying(4)
5
swvitsi_instructor_pidm character varying(8)
not null 211
swvitsi_instructor_id character E06543210
Column Name Description Attributes
Example Data
swvitsi_primary_ind character varying(1)
Y
swvitsi_instructor_last_name character varying(60)
Bartel
swvitsi_instructor_first_name character varying(15)
Bonnie
swvitsi_instructor_middle_name character varying(15)
- null-
swvitsi_instructor_email character varying(90)
swvitsi_instructor_dept_code character varying(6)
008373
swvitsi_instructor_dept_desc character varying(35)
Biochemistry & Cell Biology
swvitsi_instructor_list character varying(512)
Bartel, Bonnie; Braam, Janet
swvitsi_time_location character varying(256)
01:00PM - 02:15PM TR TBA TBA
swvitsi_ptrm_code character varying(3)
1
swvitsi_ptrm_start timestamp without time zone
- null-
swvitsi_ptrm_end timestamp without time zone
- null-
swvitsi_credits character varying(4)
- null-
Table Custom/Banner Description GOREMAL Banner Person E- mail
repeating table. SCBCRSE Banner Course General
Information Base Table
SIRASGN Banner Faculty Member Instructional Assignment Repeating Table
SPBPERS Banner Basic Person Base Table
SPRIDEN Banner Person Identification/Name Repeating Table
SSBSECT Banner Section General Information Base Table
SSBXLST Banner Cross List Enrollment Information Base Table
SSRXLST Banner Cross List Section Repeating Table
STVCOLL Banner College Validation Table
STVDEPT Banner Department Validation Table
STVSUBJ Banner Subject Validation Table
STVTERM Banner Term Code Validation Table
THRCSDB Custom (RPTMGR) This table is used to build the feed to the campus services database and Rice web directory.
Banner Sources
Column Description Example owl_checksum character
varying(32) 68073a491ac7c6c40dff362f3f265604
owl_source_code character varying(12)
banner
owl_course_site_id character varying(100)
BIOS- 425- 525- 001- F06
owl_status character varying(12)
added, modified, seen, frozen, locked, deleted
owl_last_seen_date timestamp without time zone
2006- 10- 12 15:00:05.714
owl_modified_date timestamp without time zone
2006- 09- 06 04:00:11.758
owl_added_date timestamp without time zone
2006- 06- 16 15:33:14.08
owl_dropped_date timestamp without time zone
- note-
owl_created_date timestamp without time zone
2006- 06- 17 02:01:02.393
owl_deleted_date timestamp without time zone
- note-
Columns added to view
Sakai Load Students
Column Name Description Attributes Example swvitrg_term_code character
varying(6) not null 200710
swvitrg_term_desc character varying(30)
Fall 2006
swvitrg_stu_pidm character varying(8)
not null 03939482
swvitrg_stu_last_name character varying(60)
User
swvitrg_stu_first_name character varying(15)
Sally
swvitrg_stu_middle_name character varying(15)
Bogus
swvitrg_stu_rice_id character varying(9)
S01234567
swvitrg_crn character varying(5)
not null 39483
swvitrg_subj_code character varying(4)
BIOS
swvitrg_crse_numb character varying(5)
425
swvitrg_section character varying(3)
001
swvitrg_status_date timestamp without time zone
2006- 04- 21 17:42:06
Table Custom/Banner Description SFRSTCR Banner (SATURN) Student Course
Registration Repeating Table
SPRIDEN Banner (SATURN) Person Identification/Name Repeating Table
SSBSECT Banner (SATURN) Section General Information Base Table
STVRSTS Banner (SATURN) Course Registration Validation Status Table
STVTERM Banner (SATURN) Term Code Validation Table
Column Name Description
Example
owl_checksum character varying(32)
ce178c07286f57f804669ef091e973cd
owl_source_code character varying(12)
banner
owl_status character varying(12)
added, modified, seen, frozen, locked, deleted
owl_last_seen_date timestamp without time zone
2006- 10- 17 15:00:08.235
owl_modified_date timestamp without time zone
2006- 09- 21 04:07:10.337
owl_added_date timestamp without time zone
2006- 08- 31 15:22:45.495
owl_dropped_date timestamp without time zone
owl_created_date timestamp without time zone
2006- 09- 01 02:10:32.325
owl_deleted_date timestamp without time zone
CAS
CAS
Database Scriptbegin -- 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;