Title: Collabrary Toolkit for Multimedia Groupware
1Collabrary Toolkit for Multimedia Groupware
- Michael Boyle
- Saul Greenberg
- University of Calgary
2What is the Collabrary?
- COM object library
- Rapid prototyping of novel, multimedia groupware
- Multimedia capture, analysis, manipulation
- Shared Dictionary (network service)
3What is the Shared Dictionary?
- Notification Server Persistent Data
- Hierarchy of key/value pairs
- Subscription-based notifications
- Central-server architecture
- Simple, flexible programmatic API
4Programmatic API
- Looks like a typical dictionary/hash table
- String keys look like file-system paths
Client 1 SD(/users/joe/name) Joe Smith
/users/joe/name /users/joe/photo /users/mary/email
Client 2 /users/joe/name changed
5Programmatic API
- Subscriptions asynchronous notifications
- Glob-like pattern-matching language
Dim Subscr As Subscription Set Subscr
SD.Subscribe(/users//name) Subscr_Notified(key
,inst,val,reason,prev) Update GUI to reflect
change in user name End
6Automagic
- Data marshalling
- Primitives 54.25, Hello world!
- Complex data types
- Pictures
- Sounds
- Binary data 01293ab92c03f023d
- Structs and marshal-by-value objects
7Automagic
- Reconnection on network failure
- Data tied to client lifetimes
Example SD.Open tcp//myserver.comTestDictionar
yName
8Shared Dictionary Advantages
- Simple API
- Integrated support for multimedia
- Performance
- Persistence
9Absent from the Shared Dictionary
- Authentication and authorization
- Encryption (possible, but not automatic)
- Sophisticated concurrency control algorithms
- Transactions
- Super-high scalability (e.g., federations)
- These arent needed for prototyping groupware!
10Shared Dictionary In Action
- Examples
- Notification Collage
- Graffiti Video Conferencing
11Summary
- Collabrary toolkit for prototyping multimedia
groupware - Notifications Persistence Multimedia
- Flexible, feature-rich design
- Simple programmatic interface