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

support the development of
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 2

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

slide-3
SLIDE 3

sample groupware application collaborative UML editor

motivation requirements application structure groupware model realization usage experiences

slide-4
SLIDE 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

It is error prone.

  • process synchronization
  • data consistency
  • network (components) failure

motivation requirements application structure groupware model realization usage experiences

slide-5
SLIDE 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 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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

structure in single-user applications 1

divide functionality

motivation requirements application structure groupware model realization usage experiences

slide-8
SLIDE 8

structure in single-user applications 2

increase reusability

motivation requirements application structure groupware model realization usage experiences

View Controller Model ApplicationModel

  • r

ValueModel DomainModel application logic domain or business logic

slide-9
SLIDE 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

slide-10
SLIDE 10

from single-user to multi-user: sharing the application model + application state can be accessed from each application instance + application state consistent with domain model state

motivation requirements application structure groupware model realization usage experiences

slide-11
SLIDE 11

from single-user to multi-user: the user comes into play

motivation requirements application structure groupware model realization usage experiences

slide-12
SLIDE 12

logical session management

motivation requirements application structure groupware model realization usage experiences

slide-13
SLIDE 13

provision of group awareness

motivation requirements application structure groupware model realization usage experiences

slide-14
SLIDE 14

coupling control

motivation requirements application structure groupware model realization usage experiences

slide-15
SLIDE 15

system architecture

motivation requirements application structure groupware model realization usage experiences

slide-16
SLIDE 16

COAST class hierarchy

slide-17
SLIDE 17

shared data management

shared objects are bundled in clusters COAST mediators serve clusters to COAST clients

COAST Client COAST Client COAST Mediator

motivation requirements application structure groupware model realization usage experiences

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

virtual slots: computation

motivation requirements application structure groupware model realization usage experiences

name position aClassModel selected ... aClassAppModel domainModel composeDisplayOn: aGraphicsContext aGraphicsContext 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

slide-21
SLIDE 21

view updating constraint mechanism ensures display consistency display updating integrated into transaction scheme

  • invalidation phase: accumulate display

damage

  • updating phase: repair display damage

motivation requirements application structure groupware model realization usage experiences

slide-22
SLIDE 22

view updating: change notification

motivation requirements application structure groupware model realization usage experiences

name position aClassModel selected ... aClassAppModel domainModel

key

dependency invalidation 100@50

self invalidateRectangle: boundsForInvalidation

slide-23
SLIDE 23

applications - learning VITAL CROCODILE

motivation requirements application structure groupware model realization usage experiences

slide-24
SLIDE 24

applications - process modelling

CHIPS

motivation requirements application structure groupware model realization usage experiences

slide-25
SLIDE 25

applications - roomware Beach

motivation requirements application structure groupware model realization usage experiences

slide-26
SLIDE 26

applications - games Co-operative Puzzle

motivation requirements application structure groupware model realization usage experiences

slide-27
SLIDE 27

... and the UML-Editor applications - software dev. TUKAN

motivation requirements application structure groupware model realization usage experiences

slide-28
SLIDE 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 number of users

  • VITAL was tested with up to 12

simulanousley working users

motivation requirements application structure groupware model realization usage experiences

slide-29
SLIDE 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 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

slide-30
SLIDE 30

further info & download

www.openCoast.org