SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Delivering Mobile Course
Content with uMobile
Jennifer Bourey, Unicon
Jasig-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
Courses XML Structure

<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>
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
SIS


                 ERP




Moodle   Sakai
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
Controller

          Merging Courses DAO

               Caching

Moodle DAO Sakai DAO    SIS DAO   ERP DAO
Linking to Other Modules
URL Redirection Service


Map well-defined URL to a portlet or external URL
Transform parameter names
Define additional parameters
uMobile URLs


<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>
External 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>
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/
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);

        }
}
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
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
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
Questions?


             Jen Bourey
        jbourey@unicon.net

Weitere ähnliche Inhalte

Ähnlich wie Delivering Mobile Course Content with uMobile

Msbi online training
Msbi online trainingMsbi online training
Msbi online training
Divya Shree
 
10135 a 00
10135 a 0010135 a 00
10135 a 00
Bố Su
 

Ähnlich wie Delivering Mobile Course Content with uMobile (20)

Microservices Primer for Monolithic Devs
Microservices Primer for Monolithic DevsMicroservices Primer for Monolithic Devs
Microservices Primer for Monolithic Devs
 
MOOC: Python & Web as Architecture
MOOC: Python & Web as ArchitectureMOOC: Python & Web as Architecture
MOOC: Python & Web as Architecture
 
ML Infrastracture @ Dropbox
ML Infrastracture @ Dropbox ML Infrastracture @ Dropbox
ML Infrastracture @ Dropbox
 
Resume
ResumeResume
Resume
 
Building an Android app with Jetpack Compose and Firebase
Building an Android app with Jetpack Compose and FirebaseBuilding an Android app with Jetpack Compose and Firebase
Building an Android app with Jetpack Compose and Firebase
 
Sakai presentation
Sakai presentationSakai presentation
Sakai presentation
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
 
Sanjay_Resume_exp_AEM
Sanjay_Resume_exp_AEMSanjay_Resume_exp_AEM
Sanjay_Resume_exp_AEM
 
Msbi online training
Msbi online trainingMsbi online training
Msbi online training
 
MSBI Online Training in Hyderabad
MSBI Online Training in HyderabadMSBI Online Training in Hyderabad
MSBI Online Training in Hyderabad
 
MSBI Online Training in India
MSBI Online Training in IndiaMSBI Online Training in India
MSBI Online Training in India
 
MSBI Online Training
MSBI Online Training MSBI Online Training
MSBI Online Training
 
Sw Software Design
Sw Software DesignSw Software Design
Sw Software Design
 
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorialsMongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
Mongo DB: Fundamentals & Basics/ An Overview of MongoDB/ Mongo DB tutorials
 
PRG/421 ENTIRE CLASS UOP TUTORIALS
PRG/421 ENTIRE CLASS UOP TUTORIALSPRG/421 ENTIRE CLASS UOP TUTORIALS
PRG/421 ENTIRE CLASS UOP TUTORIALS
 
Complete brouchure for Excel Computer Classes
Complete brouchure for Excel Computer ClassesComplete brouchure for Excel Computer Classes
Complete brouchure for Excel Computer Classes
 
Microsoft role-based-certification-roadmap
Microsoft role-based-certification-roadmapMicrosoft role-based-certification-roadmap
Microsoft role-based-certification-roadmap
 
CORE JAVA & ADVANCE JAVA
CORE JAVA & ADVANCE JAVACORE JAVA & ADVANCE JAVA
CORE JAVA & ADVANCE JAVA
 
10135 a 00
10135 a 0010135 a 00
10135 a 00
 
Kavindra sahu B_tech_computerscience_oraclesoa_osb_2.7yearsexp
Kavindra sahu B_tech_computerscience_oraclesoa_osb_2.7yearsexpKavindra sahu B_tech_computerscience_oraclesoa_osb_2.7yearsexp
Kavindra sahu B_tech_computerscience_oraclesoa_osb_2.7yearsexp
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Delivering Mobile Course Content with uMobile

  • 1. Delivering Mobile Course Content with uMobile Jennifer Bourey, Unicon Jasig-Sakai Conference 2012
  • 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
  • 4. Features List of courses for authenticated student by semester Important course details, recent updates Deep links to other uMobile modules
  • 5. Courses Portlet API XSD defines XML data structure Generate Java object model from XSD Publish Java object model and use in integration projects
  • 6. Courses XML Structure <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>
  • 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
  • 8. SIS ERP Moodle Sakai
  • 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
  • 11. Linking to Other Modules
  • 12. URL Redirection Service Map well-defined URL to a portlet or external URL Transform parameter names Define additional parameters
  • 13. uMobile URLs <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>
  • 14. External 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>
  • 15. Courses Module Links Current support for Directory Map Future other uMobile modules custom campus resources
  • 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
  • 18. Courses Module Configurable authentication layer will enable Trust relationships Credential replay ProxyCAS Delegated SAML Custom authentication schemes
  • 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
  • 24. Upcoming Features Public course list Configurable authentication Search integration
  • 25. Longer-Term Roadmap More Interactive features Create forum posts Upload media
  • 27. 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
  • 29. Videos YouTube videos module News reader module supports Atom, RSS Planned improvements to better support podcasts, other data formats
  • 30. Notifications Merges together personalized notifications from multiple campus services Planning to add mobile views
  • 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
  • 38. 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?
  • 40. Mobile Collaboration Jasig lists umobile-user portlet-user Sakai lists http://collab.sakaiproject.org/mailman/listinfo/sakai- mobile
  • 41. Questions? Jen Bourey jbourey@unicon.net