110 likes | 137 Views
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).
E N D
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/email … 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