Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved
Sakai Basics: What needs integrating? <ul><li>Users  </li></ul><ul><li>Groups of users </li></ul><ul><li>Institutional str...
Sakai Basics: Enterprise Integration Options <ul><li>Bulk load the Sakai database </li></ul><ul><ul><li>Uses web services ...
Enterprise Integration Options Pros & Cons <ul><li>In Sakai < 2.4, bulk loading and providers have no impact on users </li...
Automated Section Creation w/ Provider Approach to Integration Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berke...
Student enrollment data w/ Provider Approach to Integration Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
Pre-2.4 Integration Providers <ul><li>UserDirectoryProvider </li></ul><ul><ul><li>Integrates Sakai with your user director...
Changes in 2.4 <ul><li>UserDirectoryProvider </li></ul><ul><ul><li>No changes </li></ul></ul><ul><li>GroupProvider (former...
I. Users Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
UserDirectoryProvider <ul><li>Relatively mature API </li></ul><ul><li>Examples and documentation in the source code, confl...
II. Groups of Users Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
Group Provider <ul><li>Exposes enterprise defined groups in Sakai </li></ul><ul><ul><li>Map getGroupRolesForUser(String us...
GroupProvider (continued) <ul><li>Pre-2.4, no OOTB Group Provider impl. </li></ul><ul><li>In 2.4, GroupProvider must be co...
Group Provider (continued) <ul><li>OOTB Implementation maps hierarchical enterprise memberships to flat Sakai site & group...
CM impl. of the Group Provider (continued) Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
CM impl. of the Group Provider (continued) <ul><li>From  https://source.sakaiproject.org/svn/providers/tags/sakai_2-4-0/co...
III. Institutional Structures Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
Institutional Structures in the UI Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
Replacing the Legacy CMProvider <ul><li>CourseManagementService </li></ul><ul><ul><li>Models an institution of higher educ...
CourseManagementService <ul><li>Sakai 2.4 comes with a hibernate-based reference implementation </li></ul><ul><li>Institut...
CM Implementations <ul><li>UC Berkeley </li></ul><ul><ul><li>Spring JDBC against Oracle Views from SIS </li></ul></ul><ul>...
SectionFieldManager <ul><li>Simple provider that translates from user input to Section EIDs </li></ul>Enterprise Integrati...
Institutional Decisions <ul><li>Bulk add users vs UserDirectoryProvider </li></ul><ul><ul><li>All accounts are internal to...
Institutional Decisions <ul><li>Course Site & Section Creation </li></ul><ul><ul><li>Automated, based on institutional str...
Tasks for using the Provider Approach to Integration <ul><li>Implement (or borrow) a UserDirectoryProvider </li></ul><ul><...
Questions, Comments, Discussion Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
Upcoming SlideShare
Loading in …5
×

Sakai Enterprise Integration[1]

926 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
926
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sakai Enterprise Integration[1]

  1. 1. Enterprise Integration in Sakai 2.4 An overview of what’s new and (hopefully) improved
  2. 2. Sakai Basics: What needs integrating? <ul><li>Users </li></ul><ul><li>Groups of users </li></ul><ul><li>Institutional structures </li></ul><ul><li>(Schools, Departments, Courses, etc) </li></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  3. 3. Sakai Basics: Enterprise Integration Options <ul><li>Bulk load the Sakai database </li></ul><ul><ul><li>Uses web services and/or quartz jobs to populate users, create sites, and maintain site & group memberships </li></ul></ul><ul><li>Providers </li></ul><ul><ul><li>Calls out to enterprise systems at runtime </li></ul></ul><ul><ul><li>(not all providers are integration oriented) </li></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  4. 4. Enterprise Integration Options Pros & Cons <ul><li>In Sakai < 2.4, bulk loading and providers have no impact on users </li></ul><ul><li>In Sakai 2.4, providers give new capabilities to course tools </li></ul><ul><ul><li>Section Info can maintain sections automatically </li></ul></ul><ul><ul><li>Roster can display course & enrollment info </li></ul></ul><ul><ul><li>More tools in the pipeline that will rely on runtime access to enterprise data </li></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  5. 5. Automated Section Creation w/ Provider Approach to Integration Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  6. 6. Student enrollment data w/ Provider Approach to Integration Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  7. 7. Pre-2.4 Integration Providers <ul><li>UserDirectoryProvider </li></ul><ul><ul><li>Integrates Sakai with your user directory </li></ul></ul><ul><li>GroupProvider (formerly RealmProvider) </li></ul><ul><ul><li>Provides group IDs and memberships to Sakai </li></ul></ul><ul><li>CourseManagementProvider </li></ul><ul><ul><li>Decorates the group IDs with course data, instructors, and enrollments </li></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  8. 8. Changes in 2.4 <ul><li>UserDirectoryProvider </li></ul><ul><ul><li>No changes </li></ul></ul><ul><li>GroupProvider (formerly RealmProvider) </li></ul><ul><ul><li>Now configured OOTB to use the CM service (more on that soon) </li></ul></ul><ul><li>CourseManagementProvider </li></ul><ul><ul><li>Removed, replaced with CM service </li></ul></ul><ul><li>SectionFieldManager </li></ul><ul><ul><li>Poorly named (should have been SectionFieldProvider) provider for Site Info / WS Setup tool </li></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  9. 9. I. Users Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  10. 10. UserDirectoryProvider <ul><li>Relatively mature API </li></ul><ul><li>Examples and documentation in the source code, confluence, sakai-dev mail list, etc </li></ul><ul><li>See /component/src/webapp/WEB-INF/components.xml </li></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  11. 11. II. Groups of Users Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  12. 12. Group Provider <ul><li>Exposes enterprise defined groups in Sakai </li></ul><ul><ul><li>Map getGroupRolesForUser(String userId); </li></ul></ul><ul><ul><li>Map getUserRolesForGroup(String id); </li></ul></ul><ul><ul><li>String preferredRole(String one, String other); </li></ul></ul><ul><li>Defines how to do compound group IDs </li></ul><ul><ul><li>String packId(String[] ids); </li></ul></ul><ul><ul><li>String[] unpackId(String id); </li></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  13. 13. GroupProvider (continued) <ul><li>Pre-2.4, no OOTB Group Provider impl. </li></ul><ul><li>In 2.4, GroupProvider must be configured to map between enterprise-defined roles and Sakai roles </li></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  14. 14. Group Provider (continued) <ul><li>OOTB Implementation maps hierarchical enterprise memberships to flat Sakai site & group memberships </li></ul><ul><ul><li>Resolves roles in higher level structures </li></ul></ul><ul><ul><li>Resolves roles based on enrollment status </li></ul></ul><ul><ul><li>Resolves roles based on instructor status </li></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  15. 15. CM impl. of the Group Provider (continued) Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  16. 16. CM impl. of the Group Provider (continued) <ul><li>From https://source.sakaiproject.org/svn/providers/tags/sakai_2-4-0/component/src/webapp/WEB-INF/components.xml </li></ul><ul><li><bean class=“...SectionRoleResolver&quot;> </li></ul><ul><ul><li><property name=&quot; roleMap &quot;> </li></ul></ul><ul><li><map> </li></ul><ul><li><entry key=&quot;I&quot; value=&quot;Instructor&quot; /> </li></ul><ul><li><entry key=&quot;S&quot; value=&quot;Student&quot; /> </li></ul><ul><li><entry key=&quot;GSI&quot; value=&quot;Teaching Assistant&quot;/> </li></ul><ul><li></map> </li></ul><ul><li></property> </li></ul><ul><li><property name=&quot; officialInstructorRole &quot; value=&quot;Instructor&quot; /> </li></ul><ul><li><property name=&quot; enrollmentStatusRoleMap &quot;> </li></ul><ul><li><map> </li></ul><ul><li><entry key=&quot;enrolled&quot; value=&quot;Student&quot; /> </li></ul><ul><li><entry key=&quot;waitlisted&quot; value=&quot;Student&quot; /> </li></ul><ul><li></map> </li></ul><ul><li></property> </li></ul><ul><li></bean> </li></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  17. 17. III. Institutional Structures Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  18. 18. Institutional Structures in the UI Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  19. 19. Replacing the Legacy CMProvider <ul><li>CourseManagementService </li></ul><ul><ul><li>Models an institution of higher education </li></ul></ul><ul><ul><ul><li>Academic Sessions (Terms, Semesters, etc) </li></ul></ul></ul><ul><ul><ul><li>Course Sets (Schools, Departments, etc) </li></ul></ul></ul><ul><ul><ul><li>Courses, Sections, Enrollments, Memberships, etc </li></ul></ul></ul><ul><li>SectionFieldManager </li></ul><ul><ul><li>Should be named SectionFieldProvider </li></ul></ul><ul><ul><li>Allows Site Info / WS Setup to construct Enterprise IDs from user input </li></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  20. 20. CourseManagementService <ul><li>Sakai 2.4 comes with a hibernate-based reference implementation </li></ul><ul><li>Institutions may: </li></ul><ul><ul><li>Use the RI, populating the hibernate tables with the CourseManagementAdministration API </li></ul></ul><ul><ul><li>Use the RI, customizing the hibernate mappings to your custom DB schema </li></ul></ul><ul><ul><li>Write a custom implementation of the CM API </li></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  21. 21. CM Implementations <ul><li>UC Berkeley </li></ul><ul><ul><li>Spring JDBC against Oracle Views from SIS </li></ul></ul><ul><li>Stanford </li></ul><ul><ul><li>RI, loading tables via XML feeds from SIS </li></ul></ul><ul><li>UC Davis </li></ul><ul><ul><li>RI against Oracle views from SIS </li></ul></ul><ul><li>Others, see http://confluence.sakaiproject.org/confluence/x/Apc </li></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  22. 22. SectionFieldManager <ul><li>Simple provider that translates from user input to Section EIDs </li></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  23. 23. Institutional Decisions <ul><li>Bulk add users vs UserDirectoryProvider </li></ul><ul><ul><li>All accounts are internal to Sakai </li></ul></ul><ul><ul><ul><li>UserDirectoryService.addUser(String id, String eid) </li></ul></ul></ul><ul><ul><li>Allows access to externally defined users </li></ul></ul><ul><ul><ul><li>Requires a UserDirectoryProvider implementation </li></ul></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  24. 24. Institutional Decisions <ul><li>Course Site & Section Creation </li></ul><ul><ul><li>Automated, based on institutional structures </li></ul></ul><ul><ul><ul><li>Requires either CM or some custom data feed </li></ul></ul></ul><ul><ul><li>Manual (custom), as required by Instructors </li></ul></ul><ul><ul><ul><li>Requires a CM implementation </li></ul></ul></ul><ul><ul><ul><li>Requires a SectionFieldManager implementation </li></ul></ul></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  25. 25. Tasks for using the Provider Approach to Integration <ul><li>Implement (or borrow) a UserDirectoryProvider </li></ul><ul><li>Implement CM Service </li></ul><ul><li>Configure the GroupProvider </li></ul><ul><ul><li>How do institutional roles map to Sakai roles </li></ul></ul><ul><ul><li>How does enrollment status affect Sakai roles </li></ul></ul><ul><ul><li>Which Sakai roles take precedence over others </li></ul></ul><ul><li>Implement SectionFieldManager </li></ul><ul><li>Email [email_address] for help </li></ul>Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley
  26. 26. Questions, Comments, Discussion Enterprise Integration in Sakai 2.4 Josh Holtzman, UC Berkeley

×