A couple of weeks ago I went to the Apache Rave Hackleton at SURFNet in Utrecht. This was also an opportunity to talk about the latest developments in OpenSocial, and also about open web app stores and Edukapp.
As part of the event, Jasha from Hippo demonstrated Apache Rave using some of the features that our very own Paul Sharples has contributed as part of our work on the OMELETTE project – e.g. users sharing workspaces, and then the widgets within them adapting. So a user creating a workspace, adding a chat widget, sharing with another user, and then the chat working correctly for both users. Nice to see that happening, and demoed by someone outside the project :)
For inter-widget communication we were also able to show widgets and gadgets communicating with each other using OpenAjax Hub, which was some joint work by me and Matt from MITRE. Dominik and Sten from the ROLE project also showed their lovely xmpp-based IWC stuff, which they are now submitting for integration into Rave.
(The difficulty with all of this has been tackling the diversity of APIs for app developers; maybe the ROLE implementation could have an API shim that worked with the minimal OpenAjax Hub client API? And even the Wave Gadget API? Otherwise we get into a situation where app developers have to know in advance the platform implementation, which is something we need to avoid.)
There were also some interesting OpenSocial 3.0 developments, with Matt (the OS 3 editor) present to talk and answer questions. There seems to have been some major changes taking place in OpenSocial, with more interest in linking up with other spec organisations like W3C (for example, using W3C Widgets as a packaging format for distributing OpenSocial applications for hosting locally in Rave installations, and harmonizing the core metadata between the specs to make it easy to convert or crosswalk).
Apache Rave actively bridges existing widget specs, including both Apache Shindig for OpenSocial gadgets, and Apache Wookie (incubating) for W3C Widgets, and I think this is setting the tone for a more pragmatic approach.
There were also some interesting new features in OpenSocial being demoed – one of which is “embedded experiences“, which is widgets directly embedded into timelines and activity streams (with associated context):
That looks really nice; and its a feature that is likely to end up in Apache Rave sooner or later.
I did something similar with Wookie and Jaiku (using the Python connector for Wookie created by Raido Kuli) quite a while ago as a demo, and I think its a really nice idea to do embedding widgets in a generic way:
I also got to demo and talk about Edukapp, the white-label web app store project I’ve been working on – and we had a good discussion about potential audiences, developer groups and customers for this type of solution, and how it relates to Rave and other Apache projects.
Niels from SURFNet suggested using Atom rather than just JSON for the store APIs, which seems reasonable given the number of Atom-capable libraries and tools that are around. (Which made me wonder whether we should also support depositing Widgets using AtomPub, or the SWORD protocol that extends it).
It was good to get feedback on the implementation approach, which people seemed to like – i.e. using a Solr core, a JSON API, and then completely separate front end using Ajax.
(There is plenty more about Edukapp here if you’re interested.)
I had to dash off early to catch a train, so I missed the final sessions and demos, but it was a great event and very inspiring with lots of new ideas to think about. A big shout out also to SURFNet for hosting the event!
For a much better write up of the event, you should also read Jasha’s blog :)