300 likes | 318 Views
This paper introduces COAST, an object-oriented framework for developing synchronous and collaborative groupware applications. It addresses the challenges of groupware development, provides a reference architecture and ready-to-use components, and supports group awareness and different collaboration modes.
E N D
COASTAn Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI, Darmstadt, Germanyintelligent views, Darmstadt, Germany {jan.schuemmer|till.schuemmer}@gmd.dechristian.schuckmann@i-views.de
focus • Support the development of • object oriented, • synchronous, • interactive, and • complex(e.g. hypermedia applications) • groupware. motivation requirements application structure groupware model realization usage experiences
sample groupware application motivation requirements application structure groupware model realization usage experiences collaborative UML editor
problem statement • Writing groupware is difficult. • It is different from single-user application development. • more than one user at a time (multiple I/O) • provision of group awareness • support of different collaboration modes • It is error prone. • process synchronization • data consistency • network (components) failure motivation requirements application structure groupware model realization usage experiences
support groupware developers • architecture • reference architecture • ready-to-use components • e.g. server component • model • class hierarchy serves as a template for groupwareapplications • implementation • do and hide as much of the ‘hard and dirty work‘ as possible • e.g. synchronisation of shared objects motivation requirements application structure groupware model realization usage experiences
requirements • groupware-specific requirements • group awareness • coupling control • session management • floor control • general requirements • ease of use => right level of abstraction • consistency, uniform approach • reusability motivation requirements application structure groupware model realization usage experiences
structure in single-user applications 1 divide functionality motivation requirements application structure groupware model realization usage experiences
View Controller ApplicationModel Model or ValueModel application logic DomainModel domain or business logic structure in single-user applications 2 increase reusability reusable motivation requirements application structure groupware model realization usage experiences
from single-user to multi-user:sharing the domain model • synchronized domain model • view/controller and application model can remain unchanged • system is not collaboration aware motivation requirements application structure groupware model realization usage experiences shared
from single-user to multi-user:sharing the application model • application state can be accessed from each application instance • application state consistent with domain model state motivation requirements application structure groupware model realization usage experiences shared
from single-user to multi-user:the user comes into play motivation requirements application structure groupware model realization usage experiences shared
logical session management motivation requirements application structure groupware model realization usage experiences
provision of group awareness motivation requirements application structure groupware model realization usage experiences
coupling control motivation requirements application structure groupware model realization usage experiences
system architecture motivation requirements application structure groupware model realization usage experiences
COAST Mediator shared data management • shared objects are bundled in clusters • COAST mediators serve clusters to COASTclients motivation requirements application structure groupware model realization usage experiences COAST COAST Client Client
transactions • shared objects are modified in transactions • prevent inconsistencies • short transactions • optimistic or pessimistic • ACID properties • transaction processing • local execution • local commit • send agenda to mediator • global commit / reject • broadcast changes to synchronize replica motivation requirements application structure groupware model realization usage experiences
view updating • virtual slots • cache computation results • computation • on demand (lazy) • on invalidation (eager) • automatic invalidation • dependencies between model and virtual slots are detected by the framework • views have virtual slots that trigger redisplay motivation requirements application structure groupware model realization usage experiences
composeDisplayOn: aGraphicsContext aGraphicsContext paint: ColorValue gray. aGraphicsContext displayRectangle: self bounds. ... computeBounds | boundingRect | boundingRect := self nameText bounds. ^boundingRect translatedBy: self model domainModel position computeNameText | nameStr | nameStr := self model domainModel name. ^ ComposedText withText: nameStr asText allBold virtual slots: computation aClassAppModel motivation requirements application structure groupware model realization usage experiences selected ... domainModel key aClassModel dependency name position method call
view updating • constraint mechanism ensures display consistency • display updating integrated into transaction scheme • invalidation phase: accumulate display damage • updating phase: repair display damage motivation requirements application structure groupware model realization usage experiences
self invalidateRectangle: boundsForInvalidation view updating: change notification aClassAppModel motivation requirements application structure groupware model realization usage experiences selected ... domainModel key dependency aClassModel name 100@50 position invalidation
applications - learning • VITAL • CROCODILE motivation requirements application structure groupware model realization usage experiences
applications - process modelling • CHIPS motivation requirements application structure groupware model realization usage experiences
applications - roomware • Beach motivation requirements application structure groupware model realization usage experiences
applications - games • Co-operative Puzzle motivation requirements application structure groupware model realization usage experiences
applications - software dev. • TUKAN ... and the UML-Editor motivation requirements application structure groupware model realization usage experiences
usage experiences 1 • performance • COAST-applications are as fast as comparable single user applications • size of the shared object space • up to now, a maximum of 30.000 was reached • number of users • VITAL was tested with up to 12 simulanousley working users motivation requirements application structure groupware model realization usage experiences
usage experiences 2 • network connection • low bandwidth for synchronisation of replica • initial effort for replication • VITAL tested via 28.800 Bps modem connection • UML-editor tested between Germany and Argentina • development effort for COAST applications • learning effort for newbys • experienced developers • one week for first version of UML editor • one weekend for the collaborative puzzle motivation requirements application structure groupware model realization usage experiences
further info & download www.openCoast.org