1 / 30

COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications

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.

rawson
Download Presentation

COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. sample groupware application motivation requirements application structure groupware model realization usage experiences collaborative UML editor

  4. 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

  5. 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

  6. 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

  7. structure in single-user applications 1 divide functionality motivation requirements application structure groupware model realization usage experiences

  8. 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

  9. 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

  10. 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

  11. from single-user to multi-user:the user comes into play motivation requirements application structure groupware model realization usage experiences shared

  12. logical session management motivation requirements application structure groupware model realization usage experiences

  13. provision of group awareness motivation requirements application structure groupware model realization usage experiences

  14. coupling control motivation requirements application structure groupware model realization usage experiences

  15. system architecture motivation requirements application structure groupware model realization usage experiences

  16. COAST class hierarchy

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. applications - learning • VITAL • CROCODILE motivation requirements application structure groupware model realization usage experiences

  24. applications - process modelling • CHIPS motivation requirements application structure groupware model realization usage experiences

  25. applications - roomware • Beach motivation requirements application structure groupware model realization usage experiences

  26. applications - games • Co-operative Puzzle motivation requirements application structure groupware model realization usage experiences

  27. applications - software dev. • TUKAN ... and the UML-Editor motivation requirements application structure groupware model realization usage experiences

  28. 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

  29. 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

  30. further info & download www.openCoast.org

More Related