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

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

Embed Size (px)

Citation preview

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

Enterprise Integration in Sakai 2.4

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

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

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Automated Section Creation w/ Provider Approach to Integration

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

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Student enrollment data w/ Provider Approach to Integration

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

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

I. Users

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

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

II. Groups of Users

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

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

CM impl. of the Group Provider (continued)

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

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

III. Institutional Structures

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

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Institutional Structures in the UI

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

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

SectionFieldManager

• Simple provider that translates from user input to Section EIDs

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

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

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: Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved

Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley

Questions, Comments, Discussion