Collabrary Toolkit for Multimedia Groupware Michael Boyle Saul Greenberg University of Calgary
What is the Collabrary? COM object library Rapid prototyping of novel, multimedia groupware Multimedia capture, analysis, manipulation Shared Dictionary (network service)
What is the Shared Dictionary? Notification Server + Persistent Data Hierarchy of key/value pairs Subscription-based notifications Central-server architecture Simple, flexible programmatic API
Programmatic 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/ … Client 2: /users/joe/name changed
Programmatic 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
Automagic Data marshalling Primitives: 54.25, “Hello world!” Complex data types: Pictures Sounds Binary data: 01293ab92c03f023d… Structs and marshal-by-value objects
Automagic Reconnection on network failure Data tied to client lifetimes Example: SD.Open “tcp://myserver.com:TestDictionaryName
Shared Dictionary Advantages Simple API Integrated support for multimedia Performance Persistence
Absent from the Shared Dictionary Authentication and authorization Encryption (possible, but not automatic) Sophisticated concurrency control algorithms Transactions Super-high scalability (e.g., federations) These aren’t needed for prototyping groupware!
Shared Dictionary In Action Examples Notification Collage Graffiti Video Conferencing
Summary Collabrary: toolkit for prototyping multimedia groupware Notifications + Persistence + Multimedia Flexible, feature-rich design Simple programmatic interface