Next steps for the Engage services team
Colin Clark
colin.clark at utoronto.ca
Sat Jun 6 21:31:31 UTC 2009
Hi everyone,
Here's a quick summary of the tasks the Engage services team currently
have on our plates. Right now, we're working with McCord's artifact
data in XML format, using it as an opportunity to sketch out the
services architecture and sink our teeth into some real-world
scenarios. We're writing a few test services to convert this data into
JSON and persist it inside CouchDB. With this, we'll also create a
data feed that provides information about objects within an exhibit.
Summary so far:
* Yura has created instructions for getting CouchDB up and running
* He's also written a Python app to convert data from XML to JSON
* David is going to build a similar app in JavaScript
* Michelle's sketching out the API for our data feed, using existing
museum APis as an example
* I'm analyzing technologies, working towards a proposal for our
services technology stack
Related JIRA issues:
* http://issues.fluidproject.org/browse/FLUID-2809
* http://issues.fluidproject.org/browse/FLUID-2901
On the JavaScript side of things, I'd like to see the performance
impact of using a pure-JavaScript XML parser in comparison to one
implemented natively in the browser. We have an XML pull parser that
was built for the Renderer that should be suitable for this, but it's
hard to use.
David, can you start in on writing a browser-based implementation,
using the DOM to convert from XML to JSON? Antranig has agreed to
write a version using the pull parser as a comparison. These two
examples should give us a good, hands-on comparison of performance
between several flavours of JavaScript and Python.
So here's a plan for next steps:
1. Write an app that converts XML to JSON inside a browser using
jQuery and the native DOM. (David)
2. Get an equivalent app working in Rhino on the server using our XML
pull parser. (Antranig)
3. Devise a scheme for benchmarking these various implementations
(Yura and Antranig?)
4. Compare the performance of #2 in a modern JS runtime on the server,
such as V8 CGI (Yura?)
5. Sketch out the API for our artifact data feed (Michelle)
6. Get these tasks into JIRA, and start talking about our work on the
list and in the channel (everyone)
Where will all this benchmarking and experimentation lead? The goal
here is to move quickly from research into real, useful code that
supports creating great exhibit experiences on the web. The community
is starting to design and implement user interfaces for displaying
information about artifacts on a mobile device. The services layer
will be the key to providing open access to museum data throughout the
Engage system. We'll be settling on a firm technology stack for the
services layer in the next couple of weeks, and then we'll take one of
the experimental service implementations and start to polish it into
production-worthy code.
Colin
---
Colin Clark
Technical Lead, Fluid Project
Adaptive Technology Resource Centre, University of Toronto
http://fluidproject.org
More information about the fluid-work
mailing list