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)