AWS Community Day CPH - Three problems of Terraform
Coast
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
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. 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. 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. 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
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. 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. 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
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
requirements
number of users
application • VITAL was tested with up to 12
structure simulanousley working users
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
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