enterprise integration in sakai 2.4
DESCRIPTION
Enterprise Integration in Sakai 2.4. An overview of what’s new and (hopefully) improved. Sakai Basics: What needs integrating?. Users Groups of users Institutional structures (Schools, Departments, Courses, etc). Sakai Basics: Enterprise Integration Options. Bulk load the Sakai database - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Enterprise Integration in Sakai 2.4](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/1.jpg)
Enterprise Integration in Sakai 2.4
An overview of what’s new and (hopefully) improved
![Page 2: Enterprise Integration in Sakai 2.4](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/9.jpg)
Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley
I. Users
![Page 10: Enterprise Integration in Sakai 2.4](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/11.jpg)
Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley
II. Groups of Users
![Page 12: Enterprise Integration in Sakai 2.4](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/15.jpg)
Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley
CM impl. of the Group Provider (continued)
![Page 16: Enterprise Integration in Sakai 2.4](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/17.jpg)
Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley
III. Institutional Structures
![Page 18: Enterprise Integration in Sakai 2.4](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/18.jpg)
Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley
Institutional Structures in the UI
![Page 19: Enterprise Integration in Sakai 2.4](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062314/568146ce550346895db40662/html5/thumbnails/26.jpg)
Enterprise Integration in Sakai 2.4Josh Holtzman, UC Berkeley
Questions, Comments, Discussion