Making Mobile Backhaul 4G Ready Delivering Transitional Mobile Backhaul Solutions.
Delivering Mobile Course Content with uMobile
-
Upload
jennifer-bourey -
Category
Technology
-
view
490 -
download
3
description
Transcript of Delivering Mobile Course Content with uMobile
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
Mobile Collaboration
Jasig lists
umobile-user
portlet-user
Sakai lists
http://collab.sakaiproject.org/mailman/listinfo/sakai-mobile