13
Linking External Linking External Tools with Sakai Tools with Sakai David Ross Educational Technology, Albany Medical College

Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

Embed Size (px)

Citation preview

Page 1: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

Linking External Tools Linking External Tools with Sakaiwith Sakai

David RossEducational Technology, Albany

Medical College

Page 2: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

What is “linking”?

• In this context, we mean to expose or “launch” an external application to users like it was a Sakai tool.

• In some cases, we are just keeping a Sakai user authenticated as they interact with the external application, which may not be a problem if you have Single Sign On.

• In the absence of SSO, or when tighter integration is necessary, “linking” is one option.

Page 3: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

Tighter integration?

• Your external application could leverage the organization of Sakai, namely sites, sections, and groups.

• In addition to authentication, the authorization framework (roles, permissions, groups) within Sakai can be used by your external application.

• Your external application can leverage existing Sakai api(s)/tools

Page 4: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

Common use cases

• Existing application needs to run like a Sakai tool but can’t run within the Sakai JVM (it was probably written in PHP or ASP or CF or something else)

• Existing developer talent is more familiar with alternative platforms, or you have a split development staff.

Page 5: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

How?

• Two pieces to this puzzle:– Rutger’s “Link Tool”

• Just a servlet, but registered as a Sakai tool.• Spits out an IFRAME pointed at your external

application• Passes user, role, site, tool placement, session id

(signed via. digital signature)

– Webservices• Rutger’s SakaiSigning.jws

› External application verifies the user via this webservice› Optionally allows retrieval of a real Sakai session id

Page 6: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

External Tool Linking OverviewSakai

Rutgers Link Tool

Sakai-AxisSakaiSigning.jws

External Application

http://ExternalApplication/launch• User• SessionID (digitally signed)• SiteId• ToolPlacementId

.testSign(QUERY_STRING)

true | false

Page 7: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

Link Tool Basics• You can install and configure within any Sakai

site using the admin “sites” tool.• If you want your users to be able to add “linked”

tools via. Site Info -> Add Tools, you can register the Link Tool with specific names & configurations.– Add a tool definition xml file within

{sakai-src}/linktool/src/webapp/tools– Add a matching <servlet/> definition to

{sakai-src}/linktool/src/webapp/WEB-INF/web.xml• Same class each time – just name it the same as your tool• Make sure you enable the Sakai request filter for each

definition

Page 8: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

SakaiSigning.jws basics• Copy into

{sakai-src}/webservices/axis/src/webapp/ before building Sakai.

• When your external application receives the “linked” request, it needs to pass the “query string” (every parameter in the url) to call of the testSign(…) method on the SakaiSigning webservice. The reply will be “true” or “false”, and your application should react accordingly (only let the user in if Sakai answers “true”).

Page 9: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

Want to more with webservices?

• Then you *need* a real session id from Sakai.

• To keep things secure, you need to pass a “key” from your external application

• The link tool can generate the key for you

• you can request a session ID from SakaiSigning.jws for a specific user, or just the current logged in user

Page 10: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

What do we “link” @ AMC?• Event “SignUp” tool – grew out of a tool to allow students

to sign up to shadow our community physicians. Anyone can add this to their Sakai sites.

• “Patient Logs” tool – students keep a log of the patients/procedures/diagnoses they see – this is only available to 3rd & 4th year course sites and is “shared” among all users – meaning faculty in course A can see student’s data from course B. Also is group-aware within the Sakai sites.

• “Anatomy Reports” similar architecture to Patient Logs but used in the first year to collect students’ observations of their cadaver dissections.

Page 11: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

Consolidation of our Linking Architecture

• All linked tools go through a common local api for communication with Sakai. This api then talks to Sakai webservices.

• Enables quick addition of new linked tools without duplicating the “glue” code.

Page 12: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

More linkage…

• Legacy exam tool– More stable than Samigo (all final exams are

delivered online)– Instructor familiarity– Gradebook integration– Works *better* linked with Sakai than

standalone because we leverage the Sakai “containers” – meaning sites and roles. Instructors no longer have to manually assign the students to each assessment.

Page 13: Linking External Tools with Sakai David Ross Educational Technology, Albany Medical College

Questions?