delivering mobile course content with umobile

Post on 15-Nov-2014

490 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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

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

uMobile Courses Module

Features

List of courses for authenticated student by semester

Important course details, recent updates

Deep links to other uMobile modules

Courses Portlet API

XSD defines XML data structure

Generate Java object model from XSD

Publish Java object model and use in integration projects

<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

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

SakaiMoodle

SIS

ERP

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

Merging Courses DAO

Moodle DAO Sakai DAO SIS DAO ERP DAO

Caching

Controller

Linking to Other Modules

URL Redirection Service

Map well-defined URL to a portlet or external URL

Transform parameter names

Define additional parameters

<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

<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

Courses Module Links

Current support for

Directory

Map

Future

other uMobile modules

custom campus resources

Authentication

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

Courses Module

Configurable authentication layer will enable

Trust relationships

Credential replay

ProxyCAS

Delegated SAML

Custom authentication schemes

Sakai Connector Implementation

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/

@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

Upcoming Features

Public course list

Configurable authentication

Additional synoptic information

Messages

Forum posts

Documentation

Integration Improvements

Move from custom feed to Entity Broker

Gather data with fewer HTTP requests

Support for additional tools

XML format improvements

Upcoming Features

Public course list

Configurable authentication

Search integration

Longer-Term Roadmap

More Interactive features

Create forum posts

Upload media

Additional Integration Targets

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

Calendar

Read-only calendar aggregator

Supports proxied authentication, credential replay

Videos

YouTube videos module

News reader module supports Atom, RSS

Planned improvements to better support podcasts, other data formats

Notifications

Merges together personalized notifications from multiple campus services

Planning to add mobile views

Creating Custom Content

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

Custom Native Modules

Create custom native modules using Titanium Appcelerator

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

Present native components based on REST data

Request data fromREST service

Return user-specific data as

JSON

TargetServer

uMobileApp

Native Modules using REST

External Modules

Include external browser-based mobile content in uMobile app

Helps support content created in other languages, frameworks

Best when combined with SSO

External Examples

Sakai PDA portal

Future Sakai browser-based mobile resources

Mobile library websites

Other useful mobile campus resources

Moving Forward

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?

UPMC Video Streaming

Questions?

Jen Bourey

jbourey@unicon.net

top related