delivering mobile course content with umobile

41
Delivering Mobile Course Content with uMobile Jennifer Bourey, Unicon Jasig-Sakai Conference 2012

Upload: jennifer-bourey

Post on 15-Nov-2014

490 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Delivering Mobile Course Content with uMobile

Delivering Mobile Course Content with uMobileJennifer Bourey, UniconJasig-Sakai Conference 2012

Page 2: Delivering Mobile Course Content with uMobile

About Unicon

Trusted Partner since 1993

Expertise in Open Source Software for Education

Professional Services for uPortal, Sakai, CAS, Shib, Grouper, and soon Student Success Planner

Innovative Cooperative Support Program

Page 3: Delivering Mobile Course Content with uMobile

uMobile Courses Module

Page 4: Delivering Mobile Course Content with uMobile

Features

List of courses for authenticated student by semester

Important course details, recent updates

Deep links to other uMobile modules

Page 5: Delivering Mobile Course Content with uMobile

Courses Portlet API

XSD defines XML data structure

Generate Java object model from XSD

Publish Java object model and use in integration projects

Page 6: Delivering Mobile Course Content with uMobile

<course-summary> <term_code>Spring 2012</term_code> <gpa>3.7</gpa> <credits>20</credits>

<course> <title>Graphic Design History</title> <code>GRA 111</code> <school>School of Design</school> <location> <displayName>WLH 205</displayName> <identifier>WLH</identifier> </location> <meetingTimes>M-W-F, 1:30-2:30pm</meetingTimes> <url>http://courses.university.edu/dsc101/s11</url> <instructor> <abbreviation>Faculty</abbreviation> <fullName>Joe Faculty, Phd</fullName> <identifier>faculty</identifier> </instructor> <grade>A</grade> <credits>4</credits> </course>

</course-summary>

Courses XML Structure

Page 7: Delivering Mobile Course Content with uMobile

Multiple Data Sources

Many universities have multiple LMSs

Chosen by school, professor, etc.

Single student may have courses in each

Some data may be in an SIS system instead!

Merge multiple sources together on a unique identifier

Page 8: Delivering Mobile Course Content with uMobile

SakaiMoodle

SIS

ERP

Page 9: Delivering Mobile Course Content with uMobile

Sakai

DSC 101name: Design Awarenessannouncements:

Guest lecture Thursday . . .IND 120

name: Drawing for IndustryENG 101

name: First-Year Composition

Moodle

MAT 170name: Precalculus

GRA 111 name: Graphic Design History

ERP

DSC 101instructor: Crosslocation: North 162time: MWF 1:30-2:30

IND 120instructor: Cross

ENG 101instructor: Cross

MAT 170instructor: Cross

GRA 111 instructor: Cross

SIS

DSC 101grade: A

IND 120grade: B

ENG 101grade: A

MAT 170grade: B

Merged

DSC 101name: Design Awarenessannouncements:

Guest lecture Thursday . . .instructor: crosslocation: North 162time MWF 1:30-2:30grade: A

IND 120name: Drawing for Industryinstructor: crossgrade: B

ENG 101name: First-Year Compositioninstructor: crossgrade: A

MAT 170name: Precalculusinstructor: crossgrade: B

GRA 111 name: Graphic Design Historyinstructor: cross

Page 10: Delivering Mobile Course Content with uMobile

Merging Courses DAO

Moodle DAO Sakai DAO SIS DAO ERP DAO

Caching

Controller

Page 11: Delivering Mobile Course Content with uMobile

Linking to Other Modules

Page 12: Delivering Mobile Course Content with uMobile

URL Redirection Service

Map well-defined URL to a portlet or external URL

Transform parameter names

Define additional parameters

Page 13: Delivering Mobile Course Content with uMobile

<util:map id="redirectionServices"> <entry key="person"> <bean class="org.jasig.portal.redirect.PortletRedirectionUrl" p:fname="directory" p:mode="VIEW" p:type="RENDER"> <property name="dynamicParameters"> <map> <entry key="id" value="username"/> </map> </property> <property name="additionalParameters"> <map> <entry key="action" value="findByUsername"/> </map> </property> </bean> </entry></util:map>

uMobile URLs

Page 14: Delivering Mobile Course Content with uMobile

<util:map id="redirectionServices"> <entry key="person"> <bean class="org.jasig.portal.redirect.ExternalRedirectionUrl" p:url="http://directory.university.edu/search"> <property name="dynamicParameters"> <map> <entry key="id" value="query"/> </map> </property> </bean> </entry></util:map>

External URLs

Page 15: Delivering Mobile Course Content with uMobile

Courses Module Links

Current support for

Directory

Map

Future

other uMobile modules

custom campus resources

Page 16: Delivering Mobile Course Content with uMobile

Authentication

Page 17: Delivering Mobile Course Content with uMobile

uMobile App

Current implementations encrypt and store user password, replay into web-based auth forms

uPortal local authentication

CAS

Shibboleth

Looking to implement OAuth support

Page 18: Delivering Mobile Course Content with uMobile

Courses Module

Configurable authentication layer will enable

Trust relationships

Credential replay

ProxyCAS

Delegated SAML

Custom authentication schemes

Page 19: Delivering Mobile Course Content with uMobile

Sakai Connector Implementation

Page 20: Delivering Mobile Course Content with uMobile

Custom Module

Produces XML-formatted REST feed

By default uses Basic Auth but could use ProxyCAS, etc.

https://source.sakaiproject.org/contrib/jasig-courses-integration/

Page 21: Delivering Mobile Course Content with uMobile

@Controllerpublic class CourseSummaryFeed { @RequestMapping("/course-summary") public void getCourseSummary(HttpServletResponse response, Writer out) throws IOException {

// collect the user's sites List<Site> sites = (List<Site>) siteService.getSites(params); CourseSummary summary = new CourseSummary(); // add each course for (Site site : sites) { Course course = new Course(); course.setTitle(site.getTitle()); course.setCode(site.getId()); course.setUrl(site.getUrl());

// more stuff: instructors, announcements, etc.

summary.getCourses().add(course); } // serialize the course summary out as XML response.setContentType("text/xml");

JAXBContext jaxbContext = JAXBContext.newInstance(CourseSummary.class); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.marshal(summary, out); }}

Sakai Connector

Page 22: Delivering Mobile Course Content with uMobile

Upcoming Features

Public course list

Configurable authentication

Additional synoptic information

Messages

Forum posts

Documentation

Page 23: Delivering Mobile Course Content with uMobile

Integration Improvements

Move from custom feed to Entity Broker

Gather data with fewer HTTP requests

Support for additional tools

XML format improvements

Page 24: Delivering Mobile Course Content with uMobile

Upcoming Features

Public course list

Configurable authentication

Search integration

Page 25: Delivering Mobile Course Content with uMobile

Longer-Term Roadmap

More Interactive features

Create forum posts

Upload media

Page 26: Delivering Mobile Course Content with uMobile

Additional Integration Targets

Page 27: Delivering Mobile Course Content with uMobile

Search

Merges search results from multiple search services

Google Search Appliance, campus directory

Integration point allows JSR-286 portlets to publish search results

Planned integration with courses portlet

Page 28: Delivering Mobile Course Content with uMobile

Calendar

Read-only calendar aggregator

Supports proxied authentication, credential replay

Page 29: Delivering Mobile Course Content with uMobile

Videos

YouTube videos module

News reader module supports Atom, RSS

Planned improvements to better support podcasts, other data formats

Page 30: Delivering Mobile Course Content with uMobile

Notifications

Merges together personalized notifications from multiple campus services

Planning to add mobile views

Page 31: Delivering Mobile Course Content with uMobile

Creating Custom Content

Page 32: Delivering Mobile Course Content with uMobile

Custom Portlet Modules

Create custom portlet modules using JSR-168 / JSR-286 specification

Custom maven archetype for quick project creation

Available to both mobile browser and native app

Can potentially share logic with desktop portal views

Page 33: Delivering Mobile Course Content with uMobile

Custom Native Modules

Create custom native modules using Titanium Appcelerator

Write code once in JavaScript, compile to iOS and Android native app projects

Page 34: Delivering Mobile Course Content with uMobile

Present native components based on REST data

Request data fromREST service

Return user-specific data as

JSON

TargetServer

uMobileApp

Native Modules using REST

Page 35: Delivering Mobile Course Content with uMobile

External Modules

Include external browser-based mobile content in uMobile app

Helps support content created in other languages, frameworks

Best when combined with SSO

Page 36: Delivering Mobile Course Content with uMobile

External Examples

Sakai PDA portal

Future Sakai browser-based mobile resources

Mobile library websites

Other useful mobile campus resources

Page 37: Delivering Mobile Course Content with uMobile

Moving Forward

Page 38: Delivering Mobile Course Content with uMobile

What do our users want?

What content is useful?

How do those answers change by role?

How do new technologies impact what mobile services we offer?

Page 39: Delivering Mobile Course Content with uMobile

UPMC Video Streaming

Page 41: Delivering Mobile Course Content with uMobile

Questions?

Jen Bourey

[email protected]