• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LRT MoodleMootUK11 Unconf Presentation
 

LRT MoodleMootUK11 Unconf Presentation

on

  • 575 views

Describes how LRT@MMU came to understand, devise and extend various platforms with student centric data; including Moodle, W2C(http://lrt.mmu.ac.uk/w2c) Wookie Widgets,.Net,Mobile devices

Describes how LRT@MMU came to understand, devise and extend various platforms with student centric data; including Moodle, W2C(http://lrt.mmu.ac.uk/w2c) Wookie Widgets,.Net,Mobile devices

Statistics

Views

Total Views
575
Views on SlideShare
572
Embed Views
3

Actions

Likes
1
Downloads
5
Comments
0

1 Embed 3

http://www.techgig.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • We are often fixed in place by what our institutions have already bought into
  • We have a policy that dictates ‘every unit will have an entry in the MIS and an entry in Moodle’
  • Note tokenisation- equella
  • LinqPad PasteXML as XElement - powerful way to create a XML document in C# codeLinq to everything (Linq to Facebook, Linq to Amazon, Linq to AD, Linq to LDAPhttp://rshelton.com/archive/2008/07/11/list-of-linq-providers.aspx)

LRT MoodleMootUK11 Unconf Presentation LRT MoodleMootUK11 Unconf Presentation Presentation Transcript

  • Cloud Formations for Curriculum Transformation
    Tech-read “Mashing up Services for Students”
    Alex Lee & Steve Nisbet, Learning & Research Technology. MMU
    http://lrt.mmu.ac.uk
  • Why change what we do?
    National Student Survey - we’ve actually asked students what they think
    Lots of things they don’t like
    They Do like the IT (certainly @ MMU in the main), more tech savvy?
    Some Unsurprising results perhaps –
    Don’t make me think
    Do give me what I want
    I want it now!
  • EQAL
    EQAL – Complete review of teaching, support and administration of the University. Awareness of the need for change and new tools
  • Considerations for a solution
    Students require (recurring themes):
    Immediacy
    Personalisation
    Simplicity and ease in finding the information they want
    A core set of vital information to help them study and take part in their course
    Research from Initial developments, lessons learned
    Student Portal
    Background services for WebCT (alex?)
    Identification of needs, software and partners
    What do students actually need?
    Who /what can best provide (sometimes – choice is limited) the information
    How can we tap into the software solutions to provide immediacy, personalisation in a seamless manner, simple for the student?
  • This work is licensed under a Attribution-NonCommercial-ShareAlike 2.0 licence
    Core distributed VLE architecture
    news, events
    assessments, enrolments
    Exam papers, digitized materials
    Learning Objects
    resource lists
    timetables
    news, events
    moodle.mmu.ac.uk
    email, storage
  • This work is licensed under a Attribution-NonCommercial-ShareAlike 2.0 licence
    Consistent mashups for every Unit
    Unit Code
    MMU ID
    Unit Area
    Timetable
    Unit Code
    MMU ID
    Hand-ins & marks
    Unit Code
    Podcasts
    Unit Code
    Reading Lists
    provisioning
    Unit Code
    Past Papers
    Scanned articles
    On/off-campus media
    Unit Code
    MMU ID
    Enrolments
  • The key Problems then…
    How do we mash it all up?
    Systems often incompatible with each other
    Corporate buy-in (we need that data)
    Common enforced tags (student id,unit_id)
    Get around the incompatibilities
    XML as a transit
    SSO (permissions, authorization and so on)
  • Services model
    Separate service oriented support platform
    Eases the load on the mainline platform
    Aggregates many different and occasionally incompatible database driven systems and delivers a standard output of XML based information for consuming blocks/plugins on the mainline
    Portable data - isolated from major platform changes (should still work fine in Moodle 2 – doesn’t rely on schema changes Etc.)
    standard architecture (render anything not quite standard)
    Can be used to deliver to other platforms (W2C Widgets -> phones, CMS etc)
    Clear set of logs and statistics – better measurement of use
    DR / resiliency potentially easier, but requires excellent network connections and hosting (shameless ULCC plug folks!)
  • This work is licensed under a Attribution-NonCommercial-ShareAlike 2.0 licence
    Service-oriented architecture
    getMoodleAreas
    getMoodleAnnouncements
    getMoodleEvents
    getEvents
    getResourcesgetEnrolments
    getAssessments
    getCurriculumDetails
    getFeeStatus
    REST
    REST
    SOAP
    apis.mmu
    REST
    Podcast Producer
    REST
    SOAP
    REST
  • This work is licensed under a Attribution-NonCommercial-ShareAlike 2.0 licence
    getResources web service
    Lists tagged with Unit code
    REST
    Individual items extracted from RDF & XHTML
    getResources called with: moodleauth usermoodle course id (unit code)datetime stampsecurity token
    Custom block
    + To buy (3)
    Uploads tagged with Unit code
    + Essential (8)
    apis.mmu
    + Further (12)
    SOAP
    REST
    + Podcasts (4)
    Web-service searchby Unit returns matching items
    + Exam papers (4)
    Search by Unit codereturns RSS feedof matching podcasts
    getResources returns:Atom feed with SSO item links(item provenance maintained in source element)
    Podcast Producer
    REST
    Podcasts tagged with Unit code
  • PC Availability Web Service
  • Rest Web Service Overview
    • Can be accessed over http in a browser
    • Allows focus on data!
    • Very quick to develop
    • Quick development time means innovation can happen quickly
    • MMU web services output data in XML, RSS, and Atom
    • Turns inconsistent formats into standard compliant formats
    • Access data around firewalls and across networks – access anywhere
  • REST Web Service Overview
    • Can develop in a variety of languages – MMU use C#
    • Strict syntax – good for critical services
    • What version of .NET?
    • Cool software or addons:
    • Use SoapUI to check SOAP services to consume in .NET!
    • LinqPad
    • PasteXML as XElement
  • Consuming RSS in Moodle Block
    require_once($CFG->libdir .'/rsslib.php');
    require_once(MAGPIE_DIR .'rss_fetch.inc');
    if (!defined('MAGPIE_OUTPUT_ENCODING')) {
    define('MAGPIE_OUTPUT_ENCODING', 'utf-8'); // see bug 3107
    }
     
    ob_start();
    $rss = fetch_rss(‘http://apis.mmu.ac.uk/Service1.svc/getResources?’.
    ‘getResources?person=' . $USER->id . '&unit=' . $COURSE->shortname);
    $rsserror = ob_get_contents();
    ob_end_clean();
     
    if ($rss === false) {
    //handle error
    }
     
    foreach ($rss->items as $item) {
    //process the RSS!
    }
     
    Personalised!
    Tagged!
  • Results & Stats
    In 227 days the web services have had 6,445,204 hits
     getWebCTAreas 2,426,383
    getWebCTAnnouncements 1,600,768
    getFeeStatus 768,057
    getPCAvailability 306,403 This is only by widgets and My Mobile does not count My MMU getFeeEmail 3,506 (i.e. number of students who have requested full details)
  • Useful Links
    lrt.mmu.ac.uk/
    /w2c = W2C widget developments
  • Questions?
    • Create a new project in Visual Studio with WCF Service Application Template
    • Edit the config.xml file
    • Delete the <service> and <servicebehavoiur> nodes
    • Add the following code:
    Creating a REST Web Service in VS2008
  • <service name="uk.ac.mmu.Service1" behaviorConfiguration="uk.ac.mmu.Service1Behavior">        <endpoint address="" binding="wsHttpBinding" contract="uk.ac.mmu.IService1">
            </endpoint>        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    <endpointBehaviors>
    <behavior name="webHttp">
    <webHttp/>
    </behavior>
    </serviceBehaviors>
    </endpointBehaviors>
  • Create the Interface
    Edit Iservice.cs
    using System.ServiceModel.Web;
    [OperationContract, WebGet(UriTemplate =
    "getResources?person={user}&unit={unit}",
    ResponseFormat = WebMessageFormat.Xml)]
    Rss20FeedFormatter GetResourcesRss(
    string user, string unit);
  • Reading XML – Simple Way
    string token = GetMD5Hash(developer + date + sharedsecret);
    egXml.Load('Service1.svc/getResources?person=' + person +
    'unit=' + unit + 'developer=' + dev + 'dtm=' + date
    + 'token=' + token);
    nsm.AddNamespace("mmu", "http://apis.mmu.ac.uk/");
    XmlNodeListxnList = homeAreaXml.SelectNodes("//entry");
    foreach (XmlNodexn in xnList)
    {
    //do something!
    }
  • Reading XML or RSS – The LINQ Way
    var items = from item in feed.Items
    where true
    orderbyitem.LastUpdatedTime.Date descending
    select item;
    foreach (SyndicationItem item in items)
    {
    //do something!
    }
  • Outputting RSS
    SyndicationFeedresourcesFeed = new SyndicationFeed(
    "Resources for " + unit, "", null);
    Collection<SyndicationItem> items = new Collection<SyndicationItem>();
    item = new SyndicationItem( title1 , description1, new Uri(buyItemsFeed) );
    items.Add(item);
    item = new SyndicationItem( title2 , description2, new Uri(essentialItemsFeed) );
    items.Add(item);
    resourcesFeed.Items = items;
    //choose between outputting as RSS or Atom
    Rss20FeedFormatter rss = new Rss20FeedFormatter(feed);
    return rss;