sakai enterprise integration[1]

26
Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

Upload: jiali-zhang

Post on 02-Nov-2014

1.116 views

Category:

Education


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4

An overview of what’s new and (hopefully) improved

Page 2: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Sakai Basics:What needs integrating?

• Users • Groups of users• Institutional structures

(Schools, Departments, Courses, etc)

Page 3: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Sakai Basics:Enterprise Integration Options

• Bulk load the Sakai database– Uses web services and/or quartz jobs to

populate users, create sites, and maintain site & group memberships

• Providers– Calls out to enterprise systems at runtime– (not all providers are integration oriented)

Page 4: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Enterprise Integration OptionsPros & Cons

• In Sakai < 2.4, bulk loading and providers have no impact on users

• In Sakai 2.4, providers give new capabilities to course tools– Section Info can maintain sections automatically– Roster can display course & enrollment info– More tools in the pipeline that will rely on

runtime access to enterprise data

Page 5: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Automated Section Creation w/ Provider Approach to Integration

Page 6: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Student enrollment data w/ Provider Approach to Integration

Page 7: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Pre-2.4 Integration Providers

• UserDirectoryProvider– Integrates Sakai with your user directory

• GroupProvider (formerly RealmProvider)– Provides group IDs and memberships to Sakai

• CourseManagementProvider– Decorates the group IDs with course data,

instructors, and enrollments

Page 8: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Changes in 2.4

• UserDirectoryProvider– No changes

• GroupProvider (formerly RealmProvider)– Now configured OOTB to use the CM service (more on

that soon)• CourseManagementProvider

– Removed, replaced with CM service• SectionFieldManager

– Poorly named (should have been SectionFieldProvider) provider for Site Info / WS Setup tool

Page 9: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

I. Users

Page 10: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

UserDirectoryProvider

• Relatively mature API• Examples and documentation in the source

code, confluence, sakai-dev mail list, etc• See /component/src/webapp/WEB-INF/components.xml

Page 11: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

II. Groups of Users

Page 12: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Group Provider

• Exposes enterprise defined groups in Sakai– Map getGroupRolesForUser(String userId);– Map getUserRolesForGroup(String id);– String preferredRole(String one, String other);

• Defines how to do compound group IDs– String packId(String[] ids);– String[] unpackId(String id);

Page 13: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

GroupProvider (continued)

• Pre-2.4, no OOTB Group Provider impl.• In 2.4, GroupProvider must be configured to

map between enterprise-defined roles and Sakai roles

Page 14: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Group Provider (continued)

• OOTB Implementation maps hierarchical enterprise memberships to flat Sakai site & group memberships– Resolves roles in higher level structures– Resolves roles based on enrollment status– Resolves roles based on instructor status

Page 15: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

CM impl. of the Group Provider (continued)

Page 16: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

CM impl. of the Group Provider (continued)

From https://source.sakaiproject.org/svn/providers/tags/sakai_2-4-0/component/src/webapp/WEB-INF/components.xml

<bean class=“...SectionRoleResolver"><property name="roleMap">

<map><entry key="I" value="Instructor" /><entry key="S" value="Student" /><entry key="GSI" value="Teaching Assistant"/>

</map></property><property name="officialInstructorRole" value="Instructor" /><property name="enrollmentStatusRoleMap">

<map><entry key="enrolled" value="Student" /><entry key="waitlisted" value="Student" />

</map></property>

</bean>

Page 17: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

III. Institutional Structures

Page 18: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Institutional Structures in the UI

Page 19: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Replacing the Legacy CMProvider

• CourseManagementService– Models an institution of higher education• Academic Sessions (Terms, Semesters, etc)• Course Sets (Schools, Departments, etc)• Courses, Sections, Enrollments, Memberships, etc

• SectionFieldManager– Should be named SectionFieldProvider– Allows Site Info / WS Setup to construct

Enterprise IDs from user input

Page 20: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

CourseManagementService

• Sakai 2.4 comes with a hibernate-based reference implementation

• Institutions may:– Use the RI, populating the hibernate tables with

the CourseManagementAdministration API– Use the RI, customizing the hibernate mappings

to your custom DB schema– Write a custom implementation of the CM API

Page 21: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

CM Implementations

• UC Berkeley– Spring JDBC against Oracle Views from SIS

• Stanford– RI, loading tables via XML feeds from SIS

• UC Davis– RI against Oracle views from SIS

• Others, see http://confluence.sakaiproject.org/confluence/x/Apc

Page 22: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

SectionFieldManager

• Simple provider that translates from user input to Section EIDs

Page 23: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Institutional Decisions

• Bulk add users vs UserDirectoryProvider– All accounts are internal to Sakai

• UserDirectoryService.addUser(String id, String eid)

– Allows access to externally defined users• Requires a UserDirectoryProvider implementation

Page 24: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Institutional Decisions

• Course Site & Section Creation– Automated, based on institutional structures• Requires either CM or some custom data feed

– Manual (custom), as required by Instructors• Requires a CM implementation• Requires a SectionFieldManager implementation

Page 25: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Tasks for using the Provider Approach to Integration

• Implement (or borrow) a UserDirectoryProvider• Implement CM Service• Configure the GroupProvider

– How do institutional roles map to Sakai roles– How does enrollment status affect Sakai roles– Which Sakai roles take precedence over others

• Implement SectionFieldManager• Email [email protected] for help

Page 26: Sakai Enterprise Integration[1]

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Questions, Comments, Discussion