Engage Architecture meeting notes - 2009-04-30

The Shape of Engage:

  • Mobile
  • WebKit + JavaScriptCore
  • HTML, CSS, JavaScript for all UI & logic
  • Start with iPhone, another platform too (Android or Nokia Symbian). Infusion FSS could be extended.
  • concern about iPhone's accessibility
  • another platform not decided on yet
  • are visitors expected to come w/ their own devices? will museums buy new equip (realistic?)?
  • Mapping & Visualization
    -visualizing relationships between objects & concepts. UI that work on desktop & mobile that can provide visitors w/ a sense of how the exhibit is organized in space
  • main tech:
  • HTML Canvas
  • Processing + Processing.js
  • parser for Processing code to be rendered in HTML canvas?
  • open web alternative to Flash
  • Service Layer
  • Foremost, ability to handle different data
    -how to work w/ data in many systems so data can be presented to visitors in interesting ways
    -how can visitors contribute to content (e.g. tagging, creating their own collections, connections w/ outside resources such as social networking)
  • Affordable to museums
  • Open and accessible to contributors
  • Two forerunners:
    1. Pure Python stack
  • CherryPy, SpringPython, etc.
  • write a new renderer when needed
    2. Server-side JavaScript
  • practically, backed by the JVM
  • potentially could move to V8 for speed
  • all server-side code in JS
  • ChangeApplier will be key
  • Model infrastructure shared across both the client and server (i.e. awesome)
  • main code to write:
  • request handling and path parsing
  • opportunity to share code directly with the CollectionSpace project
  • Persistence:
    1. CouchDB
  • flexible schema
  • museum catalogs tend to change - but SQL quite rigid
  • MySQL - highly dynamic queries over static schema
    Couch - queries static, schema more flexible, document-based
  • useful intro to Couch: http://books.couchdb.org/relax/why-couchdb

2. Solr/Lucene

*Role of Infusion in Engage
-prominent (e.g. FSS for handheld experience)
-Web good for allowing access by many different platforms (e.g phone, kiosk, browsers)