SlideShare a Scribd company logo
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

More Related Content

Similar to Delivering Mobile Course Content with uMobile

Microservices Primer for Monolithic Devs
Microservices Primer for Monolithic DevsMicroservices Primer for Monolithic Devs
Microservices Primer for Monolithic Devs
Lloyd Faulkner
 
MOOC: Python & Web as Architecture
MOOC: Python & Web as ArchitectureMOOC: Python & Web as Architecture
MOOC: Python & Web as Architecture
Rizky Ariestiyansyah
 
ML Infrastracture @ Dropbox
ML Infrastracture @ Dropbox ML Infrastracture @ Dropbox
ML Infrastracture @ Dropbox
Tsahi Glik
 
Resume
ResumeResume
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
Marina Coelho
 
Sakai presentation
Sakai presentationSakai presentation
Sakai presentation
carl33p
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
Pavel Vlasov
 
Sanjay_Resume_exp_AEM
Sanjay_Resume_exp_AEMSanjay_Resume_exp_AEM
Sanjay_Resume_exp_AEM
Sanjay jaiswal
 
Msbi online training
Msbi online trainingMsbi online training
Msbi online training
Divya Shree
 
MSBI Online Training in Hyderabad
MSBI Online Training in HyderabadMSBI Online Training in Hyderabad
MSBI Online Training in Hyderabad
united global soft
 
MSBI Online Training
MSBI Online Training MSBI Online Training
MSBI Online Training
united global soft
 
MSBI Online Training in India
MSBI Online Training in IndiaMSBI Online Training in India
MSBI Online Training in India
united global soft
 
Sw Software Design
Sw Software DesignSw Software Design
Sw Software Design
jonathan077070
 
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
SpringPeople
 
PRG/421 ENTIRE CLASS UOP TUTORIALS
PRG/421 ENTIRE CLASS UOP TUTORIALSPRG/421 ENTIRE CLASS UOP TUTORIALS
PRG/421 ENTIRE CLASS UOP TUTORIALS
Sharon Reynolds
 
Complete brouchure for Excel Computer Classes
Complete brouchure for Excel Computer ClassesComplete brouchure for Excel Computer Classes
Complete brouchure for Excel Computer Classes
excelclasses
 
Microsoft role-based-certification-roadmap
Microsoft role-based-certification-roadmapMicrosoft role-based-certification-roadmap
Microsoft role-based-certification-roadmap
NetCom Learning
 
CORE JAVA & ADVANCE JAVA
CORE JAVA & ADVANCE JAVACORE JAVA & ADVANCE JAVA
CORE JAVA & ADVANCE JAVA
BALUJAINSTITUTE
 
10135 a 00
10135 a 0010135 a 00
10135 a 00
Bố Su
 
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
Kavindra Sahu
 

Similar to 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
MSBI Online Training MSBI Online Training
MSBI Online Training
 
MSBI Online Training in India
MSBI Online Training in IndiaMSBI Online Training in India
MSBI Online Training in India
 
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
 

Recently uploaded

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 

Recently uploaded (20)

Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 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