52
Sakai and uPortal 4 Jennifer Bourey, Software Developer, Unicon Steve Swinsburg, Software Engineer, ANU

Sakai and uPortal 4

Embed Size (px)

DESCRIPTION

Sakai 2011 Conference presentation on uPortal 4 and integration with Sakai via the Basic LTI and Sakai Connector portlets.

Citation preview

Page 1: Sakai and uPortal 4

Sakai and uPortal 4

Jennifer Bourey, Software Developer, UniconSteve Swinsburg, Software Engineer, ANU

Page 2: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16 2

Page 3: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Framework

Image courtesy of http://www.flickr.com/photos/nocallerid_man/

Page 4: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

JSR-286

• Resource URLs• AJAX Request handling• File downloads

• Inter-Portlet communication• Eventing• Public render parameters

• JS/CSS in <head>

4

Page 5: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

JSR-286

• Caching Enhancements• ETags for resource responses• Public/private scoping for shared data• Callbacks allow the portlet decide if it should

re-render

5

Page 6: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Spring 3

• Portlet 2.0 MVC Support• REST client & server support• Autowiring to reduce XML Configuration• Easier to override functionality• Significantly reduces the quantity of XML• Makes framework development faster and

easier

6

Page 7: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Smaller Codebase

Page 8: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Rendering Pipeline

• Refactored using standard JDK libraries• Componentized and Spring-configured• Advantages• More configurable and modifiable• Each component participates in cache key

generation

8

Page 9: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Bookmarkable URLs

• Reflect navigation state in the URLs• Browser controls work as expected• Multiple windows work as well!

• Allow users to bookmark URLs• Log-based statistics tools will be much

more useful

9

Page 10: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Administrative Tools

Page 11: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Administration Overview

• User experience redesign• Spring Webflow-based portlets• Standard user interfaces• Less code duplication

• Re-usable javascript components

11

Page 12: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Administration Overview

• Persistence layer upgrades• Enforce relational constraints• Provide better cross-database support• Better caching, locking, and performance• Smaller codebase with better test coverage

12

Page 13: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Re-usable Webflows

Page 14: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Re-usable JavaScript

Page 15: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Groups Administration

Page 16: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Groups-Permissions Integration

Page 17: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Permissions Administration

Page 18: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

User Administration

Page 19: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

User Interface

Page 20: Sakai and uPortal 4
Page 21: Sakai and uPortal 4
Page 22: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Internationalization

• Single unified messaging file used for all• Webflows, JSPs, XSLT, JavaScript

• Updated message codes for portlets and theme

• Automated translation of new messages

22

Page 23: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Mobile Support

Page 24: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Integration

Image courtesy of http://www.flickr.com/photos/myklroventine/

Page 25: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Grouper Integration

• Browse, search, and view Grouper groups from uPortal

• Assign uPortal permissions and distribute content using Grouper groups

• Administer Grouper groups from uPortal

25

Page 26: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Single Sign-On

• CAS• CAS 3.4.3 bundled with uPortal• CAS Clearpass module and configuration

included• Shibboleth• Authentication• SAML attributes

26

Page 27: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Event-based Search API

• Portlets can participate in search results through standard JSR-286 events

• Existing support for• User Directory• Google Search Appliance• WYSIWYG content portlets

27

Page 28: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

REST Services

• New REST services for accessing information about• Users, groups, permissions

• Still in development

28

Page 29: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Content Creation

• Re-usable publishing types for• WYSIWYG content creation• Google Gadgets• Auto-graphing SQL• Image / IFrame

29

Page 30: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Integration Portlets

• Provide an interface, common implementations, proxied authentication

• Jasig integration portlets include• Web Proxy, XSLT• Calendar (iCal, CalDAV, Bedework)• News (RSS/Atom)• Video (RSS/Atom, YouTube feeds)

30

Page 31: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Courses Portlet

Page 32: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Future Directions

Page 33: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Layout Refactoring

• Update model and persistence layers• Support more than one layout per user• Allow layout customization from a mobile

device

33

Page 34: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Groups and Permissions

• Refactor Groups and Permissions APIs• Reduce the use of static method calls• Introduce support for generics• Increase ability to unit test portal code

• Spring Security integration• Replace custom uPortal authentication APIs• Use Spring Security method-level

annotations

34

Page 35: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Statistics

• Improvements to uPortal stats recording API

• Build reporting portlets

35

Page 36: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

REST Services

• Create REST services for uPortal entities, permissions

• Allow richer integration with external tools• Easy way for portlets to access portal

specific data

36

Page 37: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Following uPortal

• Nightly Build• https://up40-nightly.jasig.org

• Community Calls• Project updates and community demos

37

Page 38: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Following uPortal

• Social Networking• http://twitter.com/uportal• http://www.facebook.com/uPortal• http://www.youtube.com/uportal

38

Page 39: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

OVERVIEW

What we wanted to achieveBasic LTISakai Connector PortletThe Basic LTI Portlet for uPortal

39

Page 40: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

What we wanted to achieve• Bringing a portal online at ANU• Link together existing systems• “One stop shop” for services• IMS Basic LTI provider support in Sakai• Render Sakai tools outside of Sakai portal• And external tools inside Sakai

• Works in Sakai 2.6 onwards (possibly earlier)

40

Page 41: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Basic LTI• Specially crafted HTTP request, signed

by OAuth• Hashes the params, inserts additional ones

• Many external integrations use a similar approach• params + secret + timestamp + checksum• Basic LTI formalises this into a proper spec

41

Page 42: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Basic LTI request

42

http://localhost:8080/imsblti/provider/sakai.resources

context_id:901868c8-ea8c-45b9-a329-2ab8a1ab702clti_message_type:basic-lti-launch-requestlis_person_contact_email_primary:[email protected]_person_name_full:Steve Swinsburglti_version:LTI-1p0oauth_consumer_key:my.anu.edu.auoauth_nonce:1276220159279202000oauth_signature:sppLAK277l5OldQOXl3MaAdXwUA=oauth_signature_method:HMAC-SHA1oauth_timestamp:1276220159oauth_version:1.0resource_link_id:Pluto_29_u24l1n19_tool_consumer_instance_guid:my.anu.edu.auuser_id:e58d8daa-f9bf-482f-9b18-2c654f19e565

Page 43: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Basic LTI in Sakai• Initial Basic LTI implementation in Sakai

namespaced users and sites to keep them sandboxed away from general population.

43

Page 44: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Basic LTI in Sakai• New users/site not ideal for integrating

systems that share information• Modified Basic LTI to allow clean

passthrough• ... skips namespacing, uses data as-is• One additional property in

sakai.properties

44

Page 45: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Sakai connector portlet• Uses SOAP web services to get

additional info from Sakai• sites user has access to• pages and tools in a given site• internal uuid

• User configures portlet• Portlet performs the Basic LTI

launch45

Page 46: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Sakai connector portlet

46

Set custom title & frame height

Choose site

Choose tool

Page 47: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Sakai connector portlet

47

Page 48: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

SCREENCASTSakai Connector Portlet

48

Page 49: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16 49

Page 50: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

Basic LTI portlet for uPortal• Pure Basic LTI consumer• Pluggable architecture for

connecting to any Basic LTI provider• Sakai, Peoplesoft, Chemvantage,

Noteflight, Standard, Wimba, standard.• Registers as a portlet type• Runtime configuration

50

Page 51: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

DEMOBasic LTI Portlet

51

Page 52: Sakai and uPortal 4

12th Sakai Conference – Los Angeles, California – June 14-16

QUESTIONS

52

https://wiki.jasig.org/display/PLT/Sakai+connector+portlet

https://wiki.jasig.org/display/PLT/Basic+LTI+Portlet