SED MOTHRA

Sakai External Database MOTHRA Data

MOTHRA is the central campus repository for information about campus users and accounts. It collects data from other source systems on campus and merges information with the intent of resolving information about each user. Sakai will use information from the MOTHRA system to refernce both personal information about users and as source of unique identification of users.

MOTHRA Data Architecture

The following MOTHRA database objects are necessary when collecting information about campus accounts:

Name

Type

Description

PERMITS

Table

ServiceIDs granted to LoginIDs

ACCOUNTS

Table

Information about each LoginID

IDS

View

Public subset of MOTHRAIDS

PEOPLE

Table

Information about each person

DEPARTMENTS

Table

Name and code of each department

BDIDS

View

Private subset of MOTHRAIDS

MAILIDS

Table

Information about each MailID

For more information about these Mothra tables and their data, please see https://confluence.ucdavis.edu/confluence/download/attachments/6851892/cMothraTables.doc.

Requirements

  • Availability: The MOTHRA data used by Sakai must be available on a 24x7 basis.
  • Refresh: Given that user information about users changes rarely, a nightly feed should be initially sufficient.

Design

The MOTHRA feed will use a rather standard table and pl/sql feed approach built for MyUCDavis several years ago. The procedure can be run nightly to update the information in the local table with the latest data from MOTHRA. The local table will then be available at all times for querying.

Test users

The sakai team had a requirement to populate their store of people with some fake test users. To this end, a set of loops was added to the end of the MOTHRA person stored procedure. These inserts used specially identifiable id fields to ensure no overlap with real users.

LDAP

Eventually, it may be possible to move away from MOTHRA and instead get this type of information from the Campus LDAP directory. However, before this can be done, Sakai must be upgraded to handle multiple sources of id information from each source system.

Implementation

The initial implementation of a Mothra Feed used a database link to the MyUCDavis CourseManagement database to do a nightly truncate a fill of person data. Since then, the feed procedure has been enhanced to perform a full feed from MOTHRA itself. The feed procedure's algorithm is as follows:

for each user in MOTHRA loop
   attempt to update the local row with the current mothra data, set activity date to new date
   if update fails, insert a new row for the user,  set activity date to new date
end loop
delete all rows with an activity date earlier than the new date

Note: The actual procedure performs some checking on null pidms because table updates will update the pidm column to a blank space instead of leaving it as null.