2. 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
7. 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
9. Sakai
Merged ERP
DSC 101
name: Design Awareness DSC 101
DSC 101 announcements:
name: Design Awareness instructor: Cross
Guest lecture Thursday . . . location: North 162
announcements: IND 120
Guest lecture Thursday . . . time: MWF 1:30-2:30
name: Drawing for Industry IND 120
instructor: cross ENG 101
location: North 162 instructor: Cross
name: First-Year Composition ENG 101
time MWF 1:30-2:30
grade: A instructor: Cross
IND 120 MAT 170
name: Drawing for Industry instructor: Cross
instructor: cross GRA 111
grade: B Moodle instructor: Cross
ENG 101
name: First-Year Composition MAT 170
instructor: cross name: Precalculus
grade: A GRA 111 SIS
MAT 170 name: Graphic Design History
name: Precalculus DSC 101
instructor: cross grade: A
grade: B IND 120
GRA 111 grade: B
name: Graphic Design History ENG 101
instructor: cross grade: A
MAT 170
grade: B
10. Controller
Merging Courses DAO
Caching
Moodle DAO Sakai DAO SIS DAO ERP DAO
17. 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
20. 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/
21. Sakai Connector
@Controller
public 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);
}
}
22. Upcoming Features
Public course list
Configurable authentication
Additional synoptic information
Messages
Forum posts
Documentation
23. Integration Improvements
Move from custom feed to Entity Broker
Gather data with fewer HTTP requests
Support for additional tools
XML format improvements
32. 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
33. Custom Native Modules
Create custom native modules using Titanium
Appcelerator
Write code once in JavaScript, compile to iOS and
Android native app projects
34. Native Modules using REST
Target
Server
Return user-
Request data from
specific data as
REST service
JSON
Present native components
uMobile based on REST data
App
35. External Modules
Include external browser-based mobile content in
uMobile app
Helps support content created in other languages,
frameworks
Best when combined with SSO
36. External Examples
Sakai PDA portal
Future Sakai browser-based
mobile resources
Mobile library websites
Other useful mobile campus
resources