COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan...
-
Upload
anthony-mathews -
Category
Documents
-
view
213 -
download
0
Transcript of COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan...
![Page 1: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/1.jpg)
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}@[email protected]
![Page 2: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/2.jpg)
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
![Page 3: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/3.jpg)
sample groupware application
collaborative UML editor
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 4: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/4.jpg)
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
![Page 5: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/5.jpg)
support groupware developers
architecture• reference architecture• ready-to-use components
• e.g. server component
model• class hierarchy serves as a template
for groupware applications
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
![Page 6: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/6.jpg)
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
![Page 7: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/7.jpg)
structure in single-user applications 1
View Controller
M odel
represents artifacts fromthe application dom ain
visualizesthe m odel
interprets user input andm anipulates the m odel
divide functionality
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 8: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/8.jpg)
structure in single-user applications 2
increase reusability
motivation
requirements
application structure
groupware model
realization
usage experiences
View Controller
ModelApplicationModel
orValueModel
DomainModel
application logic
domain or business logic
reusable
![Page 9: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/9.jpg)
from single-user to multi-user:sharing the domain model
application m odel
dom ain m odel
view/contro ller
application m odel view/contro ller
+ synchronized domain model
+ view/controller and application model can remain unchanged
- system is not collaboration aware
shared
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 10: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/10.jpg)
from single-user to multi-user:sharing the application model
application m odel
dom ain m odel
view/contro ller
view/contro ller
+ application state can be accessed from each application instance
+ application state consistent with domain model state
shared
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 11: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/11.jpg)
from single-user to multi-user:the user comes into play
Application U serApplication M odel
D om ain M odel
V iew/C ontro ller
usagerelationship
shared
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 12: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/12.jpg)
logical session management
site A
a1
d1
u1
vc1
u2
site Bvc1
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 13: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/13.jpg)
site B
site A
a1
d1
u1
u2
vc1
vc1
provision of group awareness
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 14: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/14.jpg)
site B
site A
a1
a2.1
a2.2
d1
u1
u2
vc1 vc2.1
vc1 vc2.2
P
coupling control
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 15: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/15.jpg)
system architecture
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 16: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/16.jpg)
COAST class hierarchy
![Page 17: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/17.jpg)
shared data management
shared objects are bundled in clusters
COAST mediators serve clusters to COAST clients
COASTClient
COASTClient
COASTMediator
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 18: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/18.jpg)
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
![Page 19: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/19.jpg)
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
![Page 20: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/20.jpg)
virtual slots: computation
motivation
requirements
application structure
groupware model
realization
usage experiences
nameposition
aClassModel
selected...
aClassAppModel
domainModel
boundsnam eText...
aClassV iew
m odel
composeDisplayOn: aGraphicsContextaGraphicsContext paint: ColorValue gray.aGraphicsContext displayRectangle: self bounds.
...
computeNameText| nameStr |nameStr := self model domainModel name.^ ComposedText withText: nameStr asText allBold
computeBounds | boundingRect | boundingRect := self nameText bounds. ^boundingRect translatedBy: self model domainModel position
key
dependency
method call
![Page 21: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/21.jpg)
view updating
constraint mechanism ensures display consistency
display updating integrated into transaction scheme
• invalidation phase: accumulate display damage
• updating phase: repair display damagemotivation
requirements
application structure
groupware model
realization
usage experiences
![Page 22: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/22.jpg)
view updating: change notification
motivation
requirements
application structure
groupware model
realization
usage experiences
nameposition
aClassModel
selected...
aClassAppModel
domainModel
boundsnam eText...
aClassV iew
m odel
key
dependency
invalidation 100@50
self invalidateRectangle: boundsForInvalidationself invalidateRectangle: boundsForInvalidation
![Page 23: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/23.jpg)
applications - learning
VITAL
CROCODILE
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 24: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/24.jpg)
applications - process modelling
CHIPS
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 25: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/25.jpg)
applications - roomware
Beach
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 26: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/26.jpg)
applications - games
Co-operative Puzzle
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 27: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/27.jpg)
... and the UML-Editor
applications - software dev.
TUKAN
motivation
requirements
application structure
groupware model
realization
usage experiences
![Page 28: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/28.jpg)
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
![Page 29: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/29.jpg)
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
![Page 30: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,](https://reader030.fdocuments.us/reader030/viewer/2022032722/56649f505503460f94c73243/html5/thumbnails/30.jpg)
further info & download
www.openCoast.org