30
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 [email protected]

COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,

Embed Size (px)

Citation preview

Page 1: COAST An Open Source Smalltalk Framework to Build Synchronous Collaborative Applications Jan Schümmer, Till Schümmer, Christian Schuckmann GMD - IPSI,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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

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,

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,

further info & download

www.openCoast.org