System Architecture:
Report for the Project Midterm Review
Variations2 Development Team
November 12, 2002

System Architecture
Designed and implemented system architecture for version 1.0
Developed data model in collaboration with metadata group

Variations2 1.0
System Architecture: Layer View

Variations2 1.0

Media access

Audio format
192 kbps stereo MP3 stored in QuickTime file
Audio delivery:
Darwin Streaming Server - IETF standards-based streaming server utilizing RTP (Real Time Protocol) and RTSP (Real Time Streaming Protocol)
QuickTime for Java API
“Instant-On” streaming allows for quick seeking with good network connectivity

Djvu format
AT&T Labs / LizardTech
Supports a number of compression options, including proprietary “JB2” for bitonal documents
Advantages over PDF: smaller file size, better zooming/scaling algorithm
DjVu client implementation
Free DjVu open-source package with locally-written JNI wrapper

Audio/Image Repositories
Currently only managing delivery formats through Variations2, not master files
Audio files in Darwin Streaming Server (Apple QuickTime Streaming Server
Image files in DjVu format on Apache web server
Pointers from media object records in metadata repository to media files
No true referential integrity

Metadata Repository
Stores data model objects and relationships
Data model
Described in XML document
Used to generate:
Java classes
Relational database schema
XML representation

Data Model Description Example
<id name="WorkID" type="Work"/>
<sequence name="WorkIDSequence" type="WorkID"/>
<entity name="Work">
<field name="type" type="WorkType"
init="new WorkType()"/>
<field name="uniformTitle" type="SourcedTitle" init="new SourcedTitle()"/>
<indexfield name="title" type="TextIndex" fields="uniformTitle.title, variantTitles, structure"/>
<field name="key" type="Key"
init="new Key()"/>
<field name="contributions" type="ContributionSequence"
init="new ContributionSequence()"/>

Metadata Repository
Currently implemented using relational database: IBM DB2 7.2 on AIX
DB2 Text Information Extender search engine
Search and storage mechanisms independent of database implementation
Persistent IDs assigned by server to all entities, e.g. IU/Container/1234
Can be used to generate URNs in future
Cataloging performed in separate database, copied to production database periodically

Client determines desired result based on user’s input
Queries specified as:
Constraints: What to search on
ResultContext: Primary data model type to be returned
Projections: Elements to return for each result type
Queries passed over Java RMI connection between client and server

Server translates queries to SQL, sends them to database
Data returned as Java objects (Recordset)
Recordset converted to XML; XSLT used in client to render as HTML, perform sorting, etc.
Client controls query disambiguation steps

Media Access
Media Object Player and Viewer classes offer abstraction layer separating Variations2 applications from underlying format and delivery mechanism

Media Access

Authentication and Access Control
Username/password sent encrypted from client to server over RMI when connection established
Server handles Kerberos authentication
Access Control
Access control currently “all or nothing”
Additional mechanisms to be based on IP requirements

Users can bookmark specific time points in audio and specific pages in scores
Saved to server on logout in XML
Can be exported as HTML or XML

Log4j allows highly configurable logs of server and client activity
Server logs facilitate error tracking and performance tuning
All client activity information is sent to server
Stored with anonymous ID numbers
Used for usability studies

System Architecture
Future Plans
Support additional features: synchronization, etc.
Reworking of result set handling to improve performance
Complex data model results in large number of entities even for small result sets
Servlet/JSP-based web interface?
Integration with content-based search
Expose search interface via web services?
Extend media access to additional formats, delivery methods
Repository integration: e.g. FEDORA
Further explore METS as import/export format
Explore XML database
Support for multiple sites
Automated testing system

This material is based upon work supported by the National Science Foundation under Grant No. 9909068.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.