Sunday 25 September 2011

WebSockets and Convivial Learning Environments

About 9 years ago, my attention was drawn to a major change in the technological infrastructure of the web. Capitalising on the fact that populations of many western countries were wiring themselves up with fast broadband connections, and given the rising dominance of XML as a data transport layer, WebServices presented themselves as a means by which the web could be leveraged in new ways that allowed for the discrete functionalities of systems to be repurposed - both by institutions and by users. The resulting flexibility of this technical shift created a lot of excitement in the e-learning world, where the interoperability between systems, together with the dominance of large-scale 'monolithic' systems had long been seen as stumbling blocks to the long-term sustainability of learning technologies.

Large-scale technical initiatives were launched, most famously the JISC e-Learning Framework (later simply the E-framework) - a Service-oriented specification of how university functions could be specified as discrete functional and interoperable WebServices. Perhaps more importantly, the read-write web also hooked into the WebService movement, with RSS and ATOM standards driving emerging blogging and Wiki platforms. A little later, WebServices would drive the aggregation of web components for 'mashups' with increasing separation between the data operations of Web pages and their display operations, helped by simply JavaScript techniques for exchanging data (AJAX).

In many ways, we're still there. But there's something very new happening, which I believe will have an equally transformative effect. This is W3C WebSockets. The similarity to WebServices goes about as far as the similarity of the two names. WebServices were fundamentally about XML data files; WebSockets are fundamentally about streams. This is not new in computing... we have been here before - even from early Unix years. But this time, we are talking about streams which run through web browsers: the HTML5 specification has in-built support for WebSockets.

This might not seem that revolutionary.. after all we are all used to streams - from iPlayer to Pr0n to Spotify streaming video and audio is all around us. And yet, behind the scenes, the infrastructure to get these things to work is quite arduous and certainly not for the uninitiated (ask anyone who's tried to host their own internet radio station!). With the WebSocket standard, the ability to make socket-based connections between machines gets a lot easier. Indeed, with JavaScript libraries and powerful JavaScript compilers like http://node.js, suddenly the establishment of WebSocket servers seems potentially within the reach of everyone.

This matters for a number of reasons:

  1. WebSockets are fast: the speed of interactivity between services makes a radical break with technologies like AJAX, and that means very new things become possible (see for example https://labs.ericsson.com/developer-community/blog/beyond-html5-conversational-voice-and-video-implemented-webkit-gtk).
  2. WebSockets can be used to overcome institutional hurdles which would be blocked using other techniques.
  3. WebSockets can be leveraged by teachers to create servers to host their learners as clients: this overcomes the problems of 'flatness' and control with using Web2.0 technologies.
  4. WebSockets emphasise streams over files. Potentially this has a lot of implications for the way we think about interoperability. Rather than defining XML file formats, we may need to think about other (probably API-based) ways in which streaming services can talk to each other.
The speed of WebSocket services makes levels of interactivity and rich collaboration possible that we currently only know through the provision of big corporations like Skype. WebSockets promise each of us the capacity to run our own Skype-like services. And to get a flavour of what might follow, it's worth thinking about those internet services which have already embraced streams as their model. Spotify has made the most powerful challenge to physical media in a very short space of time. This week, the 'Spotify for games', at http://onlive.com promises to do the same thing for the games industry. What would a VLE look like with this hugely rich interface using these techniques?? It's probably a sign of things to come.

But I'm most interested in the way this rich real-timeness can bring people together in new forms of activity. I think that's our best chance of realising different sorts of pedagogies - particularly those which focus on the emotional impediments to learning. And I'm interested not in the big streaming services of Spotify, Skype or OnLive, but in the rich streaming services which soon will be within the grasp of teachers.

No comments: