The Workspace Model T.C. Nicholas Graham, Greg Phillips, Chris Wolfe Equis Group, Software Technology Laboratory School of Computing Queen’s University
The Workspace Model
T.C. Nicholas Graham, Greg Phillips,Chris Wolfe
Equis Group, Software Technology LaboratorySchool of ComputingQueen’s University
Geek Warning
How Do PeopleCollaborate?
• Spontaneously vs planned• With multiple threads of collaboration• Asynchronously vs synchronously• Formally vs informally• Collocated vs remotely• Using a variety of tools and devices
– physical vs virtual– PC, handheld, whiteboard, paper…
• Evolution in collaborative structure
Architecting CollaborativeSystems
• Conceptual architectures expressstructure of system– Components, connectors, actors, adaptors
• Implementation architectures exposeissues of distributed implementation– Concurrency control, networking, caching,
…
Architecting CollaborativeSystems - Problems
• Traceability – keeping conceptual,implementation architectures in sync
• Evolution – dealing with changes inarchitecture– Triggered by users– Optimizations– Faults
Workspace Model
Example Application
• Presenter has private view of presentationincluding current slide and associated notes
• Presenter has presentation flow controls• Audience members sit in an auditorium,
view presentation on a large screen, hearpresenter’s voice directly
Conceptual Architecture
Example Application
• Remote audience members viewpresentation on their PCs and listen to thepresenter via VoIP
• Remote/local audience members see sameslide
Conceptual ArchitecturePost Evolution
ImplementationArchitectures
• Expose implementation decisions– Allocation of components to nodes– Connector implementation
• Networking protocols, consistency maintenance
• Refinement relation maintains link toconceptual architecture
ImplementationArchitecture
Refinement
• Map conceptual architecture toimplementation architecture
• Recover conceptual architecture fromimplementation architecture– E.g., failure recovery
• Can be automated– Developer works only at conceptual level; runtime
system generates implementation architecture
• Expressed via graph grammatical productions
Example Refinement Rules
Evolution
• Systems change at runtime– New participant joins session– Participant changes location– Participant changes device– Network/node fails
• Evolution calculus is an algebra forexpressing such change– Implementable in toolkit– Give semantics of toolkit features
Example EvolutionCalculus Rules
Properties of WorkspaceModel
• Refinements are Local. Application ofrefinement rules is commutative.
• Refinements Terminate. Any non-trivialrefinement sequence will eventually lead toa ground architecture.
• Evolution and Refinement isCommutative.
Application: Restoral andRecovery
Application: WorkspaceSemantics of Extended C++
Status
• Workspace Model completely specified• Two toolkit implementations underway
– Automation of refinement relation• Evolutions at conceptual, implementation levels
– Plug-replaceability of implementation components• E.g., developer can choose consistency maintenance
algorithm to suit application
– Python– C++
• Natural C++ programming style• Support for existing code