June 25, 2011

Web Services for Mahara

mahara.png

As part of some work for the Ministry of Education for LMS -> myPortfolio (Mahara) integration, it became apparent that we needed a Web Services stack. This is not particularly interesting in it's self, but it is something that an interconnected service needs, in order to participate in a Socially Networked world.
Building a WS framework is not a difficult thing, but it is relatively time consuming (anything that takes more than a few weeks is considered expensive here), so the problem was, how to develop an unexciting feature that in itself does not deliver any great new user experience quickly and cheaply. At this point it occurred to me that there might be a solution in what Moodle has achieved with it's Web Services Framework - after all, Mahara is (in a previous life) based on Moodle.

It turned out, that the way that Peta Skoda has developed the Moodle WSF is fundamentally based on Zend data services, and is quite portable.

To this end, I have ported it as an artefact plugin which can be downloaded here, and the documentation is here.

This gives the basic features of token, and user based auth, with SOAP, XML-RPC and JSON emitting REST based services. There are a number of other things that I'd like to add to this, the most important being OAuth based authentication, and JSON based import parameter consumption.

Edit: JSON based import parameter consumption, has been done, but I want to add replacing MNet to the list of things to do.

Posted by PiersHarding at 9:12 AM

September 6, 2010

Moodle, OAuth, and Google Fusion

Convergence is a strange and reoccurring theme, and it's happened again from me over the last few months with BI reporting, Moodle, OAuth, and Google.

I've looked at a few BI (well SAP, Business Objects, and Pentaho) implementations over the years, and one of the things that I have always found frustrating/off putting is what I consider the huge startup costs for such implementations. This has usually been characterised by expensive infrastructure implementations in both hardware and software coupled with the difficulty that most businesses have in visualising what data they need to have access to, and how it should be most effectively presented.

I've found this dilemma more accute in the Moodle world, as the so many of the customers involved are on a very tight to non-existent budget, yet their requirement to analyse Learning Managment System performance data is still there.

A year ago, I concluded that Pentaho was my first choice, for the twin reasons that it's OpenSource (specifically no license fees), and that it has sufficiently good data modelling tools to enable a suite of reports customised to Moodle to be delivered. While this reduces the cost of delivering a flexible reporting solution for Moodle, it still falls short on a couple of points:

(1) Most people who implement Moodle are not Data Warehousing, or Modelling experts so they are unlikely to be able to sufficiently accurately determine what their requirements are in advance (actually a common business problem, not unique to the Moodle community).
(2) Pentaho, while reasonably straight forward to install, is still another complex piece of software to host - a major barrier to entry for most Moodle implementations.

What I started looking for then, was a set of visualisation tools that could be integrated with Moodles PHP environment - atleast users would then be able to do more complex reporting and analysis. What I found exceeded my expectations, in the form of a Labs project from Google called Fusion Tables.

Fusion Tables is shaping up to be Business Intelligence reporting with the twist of collaborative, and Geo encoding capabilities. The basic mode is that CSV files of data can be uploaded into a flexible storage engine, datasets can be joined and merged, automatically Geo encoded, and then consumed through a good set of graphical presentation tools. Datasets can be shared and collaboratively edited.


As Luck would have it that this service is firstly free, and secondly exposed via an SQL-like API integrated with the standard Google OAuth mechanism. This makes it attractive as a generic data analysis and reporting tool for a low cost operating environment like Moodle and the education sector.

To test out the theory of all this, I've implemented 3 things:
* OAuth integration for Moodle including a site, and secret registry
* A generic Fusion Tables data proxy for Moodle
* A Gradebook export module that enables the export of the standard gradebook data to Fusion Tables

For the curious, this can be found at Gitorious -moodle-local_oauth.

Posted by PiersHarding at 7:06 AM

August 27, 2009

New release for sapnwrfc PHP and Python

Been a busy month, working on the NW SAP RFC connectors. With build help from Menelaos, I now have a working Python build system for Windows on the Python NW RFC Connector as of version 0.07 - this is available here.

Also, with help from Joachim, I've added a static function sapnwrfc_removefunction(<sysid>, <function name>) to the PHP connector that allows the removing of function definitions from the local cache. this is most useful when developing RFC applications in PHP, as you can modify your RFC definition without having to restart the web server everytime. This is available from version 0.09 here.

Posted by PiersHarding at 7:43 AM

August 15, 2009

Auth SAML 2.0 for Mahara

Following on from the SAML 2.0 work that I've done recently for Moodle, I thought it was useful to do the same for the Mahara ePortfolio service, while I was in the same space. Details of the first release can be found here, with tested version for both trunk, and 1.1_STABLE.

Posted by PiersHarding at 9:25 AM

August 3, 2009

Moodle and SAML 2.0 Web SSO

Of late I have been doing a lot of SSO integration work for the NZ Ministry of Education, and during this time I came across an excellent project FEIDE. One of the off shoots of this has been the development of a high quality PHP library for SAML 2.0 Web SSO - SimpleSAMLPHP.

For Moodle integration, Erlend Strømsvik of Ny Media AS, developed an authentication plugin, which I've made a number of changes to around configuration options, and Moodle session integration. This has now been documented and added to Moodle Contrib to give it better visibility to the Moodle community at large. Documentation is here and the contrib entry is here.

Posted by PiersHarding at 8:41 AM