Coast

643 views
600 views

Published on

COAST: An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications (ESUG 2000, Southampton)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
643
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Coast

  1. 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. 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. 3. sample groupware application motivation requirements application structure groupware model realization collaborative UML editor usage experiences
  4. 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 requirements It is error prone. application •  process synchronization structure •  data consistency groupware •  network (components) failure model realization usage experiences
  5. 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 requirements implementation application •  do and hide as much of the ‘hard and structure dirty work‘ as possible groupware •  e.g. synchronisation of shared objects model realization usage experiences
  6. 6. requirements groupware-specific requirements •  group awareness •  coupling control •  session management •  floor control motivation general requirements requirements •  ease of use => right level of application abstraction structure •  consistency, uniform approach groupware model •  reusability realization usage experiences
  7. 7. structure in single-user applications 1 divide functionality motivation requirements application structure groupware model realization usage experiences
  8. 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. 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. 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. 11. from single-user to multi-user: the user comes into play motivation requirements application structure groupware model realization usage experiences
  12. 12. logical session management motivation requirements application structure groupware model realization usage experiences
  13. 13. provision of group awareness motivation requirements application structure groupware model realization usage experiences
  14. 14. coupling control motivation requirements application structure groupware model realization usage experiences
  15. 15. system architecture motivation requirements application structure groupware model realization usage experiences
  16. 16. COAST class hierarchy
  17. 17. shared data management shared objects are bundled in clusters COAST mediators serve clusters to COAST Mediator COAST clients motivation requirements application structure groupware model realization COAST COAST Client Client usage experiences
  18. 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 structure •  global commit / reject groupware •  broadcast changes to synchronize replica model realization usage experiences
  19. 19. view updating virtual slots •  cache computation results •  computation •  on demand (lazy) •  on invalidation (eager) •  automatic invalidation •  dependencies between model and motivation requirements virtual slots are detected by the application framework structure groupware views have virtual slots that trigger model redisplay realization usage experiences
  20. 20. virtual slots: computation composeDisplayOn: aGraphicsContext aGraphicsContext paint: ColorValue gray. computeBoundsaGraphicsContext displayRectangle: self bounds. | 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 structure key groupware aClassModel model dependency name realization position usage method call experiences
  21. 21. view updating constraint mechanism ensures display consistency display updating integrated into transaction scheme •  invalidation phase: accumulate display motivation damage requirements •  updating phase: repair display damage application structure groupware model realization usage experiences
  22. 22. view updating: change notification self invalidateRectangle: boundsForInvalidation aClassAppModel selected motivation ... requirements application domainModel structure key groupware aClassModel model dependency name realization position 100@50 usage invalidation experiences
  23. 23. applications - learning VITAL CROCODILE motivation requirements application structure groupware model realization usage experiences
  24. 24. applications - process modelling CHIPS motivation requirements application structure groupware model realization usage experiences
  25. 25. applications - roomware Beach motivation requirements application structure groupware model realization usage experiences
  26. 26. applications - games Co-operative Puzzle motivation requirements application structure groupware model realization usage experiences
  27. 27. applications - software dev. TUKAN ... and the UML-Editor motivation requirements application structure groupware model realization usage experiences
  28. 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 requirements number of users application •  VITAL was tested with up to 12 structure simulanousley working users groupware model realization usage experiences
  29. 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 requirements development effort for COAST applications application •  learning effort for newbys structure •  experienced developers groupware •  one week for first version of UML editor model •  one weekend for the collaborative puzzle realization usage experiences
  30. 30. further info & download www.openCoast.org

×