310 likes | 442 Views
Properties of Collaborative User Interfaces. Prasun Dewan Department of Computer Science University of North Carolina at Chapel Hill dewan@cs.unc.edu. COLLABORATIVE APPLICATION. A user’s output can be influenced by the input of at least one other user. Application.
E N D
Properties of Collaborative User Interfaces Prasun Dewan Department of Computer Science University of North Carolina at Chapel Hill dewan@cs.unc.edu
COLLABORATIVE APPLICATION A user’s output can be influenced by the input of at least one other user Application User inputs “draw red circle” Or a user’s input can influence the output of at least one other user U1 U2 U3 Coupling Coupling
Mandatory and Optional Properties Interactive Multi-view Distributed Multiuser Collaborative Optional but typical properties User Awareness Real-time Collaboration
Console Feedback Simplex because Architecture Feedback only in console
Changes all User Interfaces Distributed? Change in UI?
Distributed UI Server Client
Distributed UI Server Client Multi-user?
Multi-User Interface: Bob Feedback Collaborative? Non real time?
Bob Joins No latecomer support
Bob Feedback Real-time Collaborative?
Local and Remote Response User awareness?
Super collaborative: Tele-pointer, Awareness Features in the Collaborative UI that did not exist in the 1-user UI
Programming Constraints Interactive It should be possible to create each kind of user interface Multi-view Distributed There should be reuse Multiuser Reuse should be layered Collaborative User Awareness Real-time Collaboration
Layering/Awareness User Awareness Real-time Collaboration Collaborative Real-time, user-awareness unaware Multiuser Coupling unaware Multi-view Distributed Multi-User unaware Single-View Distribution, view, unaware A layer is unaware of layers above A layer should be designed to be reused by higher layers
Summary • By definition, real-time and user-awareness implies collaborative, which implies, multi-user, which implies multi-view • Typically multi-user applications implies distributed • These fundamental and typical implications can be used to create a set of logical layers, with a logical layer stacked on top of layers it implies • An implementation goal should be to create actual physical layers that mirror these logical layers, that is, each logical layer should be mapped to one or more separate software layers
Summary • Real-time does not imply user awareness though in this example we added it on top of user awareness • Imagine a counter shared among multiple users that does not give indication of who changed it.