support the development of
play

Support the development of object oriented, synchronous, - PowerPoint PPT Presentation

COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schmmer, Till Schmmer, Christian Schuckmann GMD - IPSI, Darmstadt, Germany intelligent views, Darmstadt, Germany


  1. COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI, Darmstadt, Germany intelligent views, Darmstadt, Germany {jan.schuemmer|till.schuemmer}@gmd.de christian.schuckmann@i-views.de

  2. focus Support the development of • object oriented, • synchronous, • interactive, and • complex (e.g. hypermedia applications) motivation requirements groupware. application structure groupware model realization usage experiences

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

  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 motivation It is error prone. requirements • process synchronization application structure • data consistency groupware • network (components) failure 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 groupware applications motivation implementation requirements • do and hide as much of the ‘hard and application structure dirty work‘ as possible groupware • e.g. synchronisation of shared objects model realization usage experiences

  6. requirements groupware-specific requirements • group awareness • coupling control • session management • floor control general requirements motivation • ease of use => right level of requirements abstraction application structure • consistency, uniform approach groupware • reusability model realization usage experiences

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

  8. structure in single-user applications 2 increase reusability View Controller motivation ApplicationModel Model or requirements ValueModel application application logic structure groupware DomainModel domain or model business logic 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

  10. from single-user to multi-user: sharing the application model + application state can be motivation accessed from each requirements application instance application structure + application state consistent groupware with domain model state model realization usage experiences

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

  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. shared data management shared objects are bundled in clusters COAST mediators serve clusters to COAST COAST clients Mediator motivation requirements application structure groupware model COAST COAST realization Client Client usage experiences

  18. transactions shared objects are modified in transactions • prevent inconsistencies • short transactions • optimistic or pessimistic • ACID properties transaction processing • local execution motivation • local commit requirements • send agenda to mediator application • global commit / reject structure • broadcast changes to synchronize replica 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 motivation virtual slots are detected by the requirements framework application structure views have virtual slots that trigger groupware model redisplay realization usage experiences

  20. virtual slots: computation 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 aClassAppModel selected motivation ... requirements application domainModel key structure groupware aClassModel model name dependency realization position usage method call experiences

  21. view updating constraint mechanism ensures display consistency display updating integrated into transaction scheme • invalidation phase: accumulate display damage motivation • updating phase: repair display damage requirements application structure groupware model realization usage experiences

  22. view updating: change notification self invalidateRectangle: boundsForInvalidation aClassAppModel selected motivation ... requirements application domainModel key structure groupware aClassModel dependency model name realization position 100@50 invalidation usage experiences

  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 motivation number of users requirements • VITAL was tested with up to 12 application simulanousley working users 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 motivation development effort for COAST applications requirements • learning effort for newbys application structure • experienced developers groupware • one week for first version of UML editor model • one weekend for the collaborative puzzle realization usage experiences

  30. further info & download www.openCoast.org

Recommend


More recommend