Dashboard > 6th Sakai Conference, Atlanta, GA, USA 5-8 Dec 2006 > ... > Conference Sessions > Rice Sakai Deployment - Integration, Implementation, and Lessons Learned
  6th Sakai Conference, Atlanta, GA, USA 5-8 Dec 2006 Log In | Signup View a printable version of the current page.  
  Rice Sakai Deployment - Integration, Implementation, and Lessons Learned
Added by Mary Miles, last edited by Dean Lane on Dec 11, 2006  (view change)
Labels: 
(None)

Rice Sakai Deployment: Integration, Implementation, and Lessons Learned

Speaker(s): Angela Rabuck with Dean Lane, Omer Piperdi

Date: Friday 10:15 am - 10:55 am
Room: INTL 2

Session Abstract


This session will discuss various aspects of Rice University's Sakai implementation. We will discuss our architecture, which has a few unique aspects. We are running our Sakai implementation on load balanced VM sessions, which are fronted by a NetScaler. On the backend, we are using an Oracle DB server and a BlueArc NAS for file storage. Other unique aspects of our implementation include the use of both CAS and Kerberos authentication. We have developed java code that uses Web Services to provision Sakai course sites from Banner data. We will discuss the process involved and issues that arose. We will briefly talk about our rollout from a pilot to a production system and how Sakai has been viewed on our campus. Some basic usage statistics and user feedback will be presented.

Presentation Materials

Additional Information

Appendix 0: Misc Notes

  • Our Banner is version 7.3

Appendix A: Hardware List

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

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

Appendix B: load users

This script loads new users into Sakai.

Field 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

Appendix C: table copy

This process is run at the start of both the Course and Student Sakai loads. It makes a local copy of the Banner view as a table in the Middleware database. We do this because the Banner data does not contain any indicators to tell us when new data shows up or when data is dropped from the view. We have to keep track of this information on our side to make working with the data easier.

As of right now, only the Student load is setup to remove people from course sites. It calls these two functions to set the tables up for Student removal.

If you noticed in the previous process flows, record state is stored in the Middleware copy of the Banner views. Here is the state diagram that shows the state transitions possible for these records.

A brief explaination of the states:

  • 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

Appendix D: load courses

This script loads new courses into Sakai. Banner presents a table called SWVITSI that contains all courses available at the University. Each entry is keyed with the following entries: term code, course number, instructor id. This means that each course may be listed multiple times if there are multiple instructors for the course.

Banner - SWVITSI (Custom View)

This custom Banner view contains course inforamtion, one row for each section and instructor per term.

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 varying(9)   E06543210
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)   user@rice.edu
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

This view is built using data from the following Banner sources:

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.

When SWVITSI is copied to the Middleware database, several additional columns are added.

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

Appendix E: load students

This script loads students into courses in Sakai. Banner presents a table called SWVITRG that contains all students at the University. Each entry is keyed with the following entries: term code, course number, student id. This means that each student may be listed multiple times if there are taking more than one course per term.

Banner - SWVITRG (Custom View)

This custom Banner view contains student information, one row for each student and course per term.

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

This view is built using data from the following Banner sources:

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

When SWVITRG is copied to the Middleware database, several additional columns are added.

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  

Appendix F: CAS & Kerberos

  • Modify sakai.properties file

Podcasts

  • Session leaders are encouraged to post their podcasts on the main Atlanta Podcasts page (a central repository of podcasts) and may also choose to link to them from their session page. See the main Atlanta conference wiki page for more details.

Additional Information

  • Session leaders are also encouraged to appoint a session convener, a podcast recorder and/or a note-taker and post the minutes of their session on a Page (see Add Page link near top-right.)
  • Participants and Session Leaders are encouraged to post Comments (see Comment form below) or create additional Pages as needed to facilitate collaboration (see Add Page link near top-right.)
    • Child Pages for this session (Added Pages will automatically appear in this list)
Site running on a free Atlassian Confluence Open Source Project License granted to Sakai Foundation. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.5 Build:#811 Jul 25, 2007) - Bug/feature request - Contact Administrators