3. Framework
Image courtesy of http://www.flickr.com/photos/nocallerid_man/
12th Sakai Conference – Los Angeles, California – June 14-16
4. JSR-286
• Resource URLs
• AJAX Request handling
• File downloads
• Inter-Portlet communication
• Eventing
• Public render parameters
• JS/CSS in <head>
12th Sakai Conference – Los Angeles, California – June 14-16
4
5. JSR-286
• Caching Enhancements
• ETags for resource responses
• Public/private scoping for shared data
• Callbacks allow the portlet decide if it should
re-render
12th Sakai Conference – Los Angeles, California – June 14-16
5
6. 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
12th Sakai Conference – Los Angeles, California – June 14-16
6
7. Smaller Codebase
12th Sakai Conference – Los Angeles, California – June 14-16
8. Rendering Pipeline
• Refactored using standard JDK libraries
• Componentized and Spring-configured
• Advantages
• More configurable and modifiable
• Each component participates in cache key
generation
12th Sakai Conference – Los Angeles, California – June 14-16
8
9. 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
12th Sakai Conference – Los Angeles, California – June 14-16
9
10. Administrative Tools
12th Sakai Conference – Los Angeles, California – June 14-16
11. Administration Overview
• User experience redesign
• Spring Webflow-based portlets
• Standard user interfaces
• Less code duplication
• Re-usable javascript components
12th Sakai Conference – Los Angeles, California – June 14-16
11
12. Administration Overview
• Persistence layer upgrades
• Enforce relational constraints
• Provide better cross-database support
• Better caching, locking, and performance
• Smaller codebase with better test coverage
12th Sakai Conference – Los Angeles, California – June 14-16
12
13. Re-usable Webflows
12th Sakai Conference – Los Angeles, California – June 14-16
14. Re-usable JavaScript
12th Sakai Conference – Los Angeles, California – June 14-16
22. Internationalization
• Single unified messaging file used for all
• Webflows, JSPs, XSLT, JavaScript
• Updated message codes for portlets and
theme
• Automated translation of new messages
12th Sakai Conference – Los Angeles, California – June 14-16
22
24. Integration
Image courtesy of http://www.flickr.com/photos/myklroventine/
12th Sakai Conference – Los Angeles, California – June 14-16
25. Grouper Integration
• Browse, search, and view Grouper groups
from uPortal
• Assign uPortal permissions and distribute
content using Grouper groups
• Administer Grouper groups from uPortal
12th Sakai Conference – Los Angeles, California – June 14-16
25
26. Single Sign-On
• CAS
• CAS 3.4.3 bundled with uPortal
• CAS Clearpass module and configuration
included
• Shibboleth
• Authentication
• SAML attributes
12th Sakai Conference – Los Angeles, California – June 14-16
26
27. 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
12th Sakai Conference – Los Angeles, California – June 14-16
27
28. REST Services
• New REST services for accessing
information about
• Users, groups, permissions
• Still in development
12th Sakai Conference – Los Angeles, California – June 14-16
28
29. Content Creation
• Re-usable publishing types for
• WYSIWYG content creation
• Google Gadgets
• Auto-graphing SQL
• Image / IFrame
12th Sakai Conference – Los Angeles, California – June 14-16
29
30. 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)
12th Sakai Conference – Los Angeles, California – June 14-16
30
33. Layout Refactoring
• Update model and persistence layers
• Support more than one layout per user
• Allow layout customization from a mobile
device
12th Sakai Conference – Los Angeles, California – June 14-16
33
34. 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
12th Sakai Conference – Los Angeles, California – June 14-16
34
35. Statistics
• Improvements to uPortal stats recording
API
• Build reporting portlets
12th Sakai Conference – Los Angeles, California – June 14-16
35
36. REST Services
• Create REST services for uPortal entities,
permissions
• Allow richer integration with external tools
• Easy way for portlets to access portal
specific data
12th Sakai Conference – Los Angeles, California – June 14-16
36
37. Following uPortal
• Nightly Build
• https://up40-nightly.jasig.org
• Community Calls
• Project updates and community demos
12th Sakai Conference – Los Angeles, California – June 14-16
37
38. Following uPortal
• Social Networking
• http://twitter.com/uportal
• http://www.facebook.com/uPortal
• http://www.youtube.com/uportal
12th Sakai Conference – Los Angeles, California – June 14-16
38
39. What we wanted to achieve
Basic LTI
Sakai Connector Portlet
The Basic LTI Portlet for uPortal
OVERVIEW
12th Sakai Conference – Los Angeles, California – June 14-16 39
40. 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)
12th Sakai Conference – Los Angeles, California – June 14-16 40
41. 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
12th Sakai Conference – Los Angeles, California – June 14-16 41
43. Basic LTI in Sakai
• Initial Basic LTI implementation in Sakai
namespaced users and sites to keep them
sandboxed away from general population.
12th Sakai Conference – Los Angeles, California – June 14-16 43
44. 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
12th Sakai Conference – Los Angeles, California – June 14-16 44
45. 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
launch
12th Sakai Conference – Los Angeles, California – June 14-16 45
46. Sakai connector portlet
Set custom title
& frame height
Choose site
Choose tool
12th Sakai Conference – Los Angeles, California – June 14-16 46
50. 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
12th Sakai Conference – Los Angeles, California – June 14-16 50