RiceSakaiAtlanta

advertisement
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;
Download