VLE Web services

Eagle-eyed readers may have spotted from our last post that two web services have been called more than any of the others:

Web Services Hits
Stats for web ser

The two most frequently-accessed web services are getWebCtAreas and getWebCtAnnouncements. These services are called by a custom web part from the main page of our myMMU SharePoint portal. They deliver a list of the user’s areas within the VLE and an aggregated feed of recent announcements from those areas. This post summarizes how this is achieved.

Screen shot of myMMU portal page
myMMU portal page

WebCT (Blackboard Learn 8 Vista Edition)

MMU has used WebCT Vista as its institutional VLE since 2006. User accounts and course areas are created in WebCT (as it is known by staff and students) from our student records system using a custom script that posts IMS Enterprise XML to WebCT’s System Integration API (SIAPI). Users logging in to WebCT directly are authenticated against the institution’s LDAP servers, but WebCT also supports Single-Sign-On (SSO) through an impersonation account, token and a get autosignon URL service.

The Web services developed for the myMMU portal use the autosignon URL feature in conjunction with two other SIAPI methods: one (get consortia_id) returns the user’s internal WebCT ID; the other (get mywebct_xml) returns the user’s WebCT home page as XML. Blackboard provide their clients with illustrative source code for a JSR168 portlet that uses these SIAPI services, and encourage development around it via their edugarage.com community developer site. We have used this code to help us write our .NET Window Communication Framework REST web services that return personalized RSS feeds.

To ensure privacy and security, the WebCT SIAPI only responds if supplied with a valid token generated using an MD5 hash on a shared secret that is combined with the ASCII count of calling parameters, which include a timestamp. For instance, a call to get the user’s home area as XML is as follows:

&webctid={user's internal webct ID}
&timestamp={seconds since unix epoch, 01/01/1970}
&glcid={internal code for root node of institution's course hierarchy}
&auth={md5 hash token}

Our Web service Architecture

The overall approach for the getWebCtAnnouncements web service is summarized in the diagram below:

System architecture for getWebCtAnnouncements web service
getWebCtAnnouncements overview

For WebCT announcements, the RSS item title concatenates the title of the course area with the header title of the announcement.

The getWebCtAreas web service is very similar. Instead of querying the database to create RSS items, each course area on which the user is enrolled is extracted from the homeareaXML and returned as an RSS item with any additional information (such as notification of new discussion postings or assessment gradings) returned within the RSS item description.

The two RSS feeds are consumed by a custom web part that is used twice on the myMMU portal page. The web part takes a mode parameter that determines whether it will display the RSS items in a single scrolling list (for announcements) or in two tabs (for areas: one for the current year’s and one for areas from previous year’s). Tab switching and scrolling item lists were created using jQuery libraries as part of a re-brand of myMMU undertaken by SharePoint Solutions Partner, Novotronix during summer 2010.

The web part generates the authentication token expected by our web services based on an MD5 hash of the calling parameters its supplies (user ID and timestamp) and a shared secret. The RSS returned by the web part is parsed and xhtml list items are created with appropriate ID and style attributes for the jQuery and CSS. The overall effect is maximum use of screen real estate for most recent VLE announcements and single sign on links to the user’s VLE course areas. Consultation with students identified simple VLE access as the most sought-after portal feature.

Our decision to deliver VLE functionality in SharePoint using web services lays foundations for two important flexibilities for the future:

  • the ability to switch the VLE from WebCT to Moodle; and
  • the ability to use VLE web services to deliver content to students’ mobiles

We now have personalized RSS feeds for VLE and financial information that operate using a simple but effective token architecture. We will be discussing mobile integration possibilities with our commercial partners: ULCC and oMbiel (see a recent press release), and intend to explore the possibility of a widget store that can support tokens (see our musings in an earlier post)

2 thoughts on “VLE Web services”

Leave a Reply