SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
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
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
sample groupware application




motivation
requirements
application
  structure
groupware
   model
realization                     collaborative UML editor
usage
  experiences
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
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
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
structure in single-user applications 1


     divide functionality




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
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
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
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
from single-user to multi-user:
                the user comes into play




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
logical session management




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
provision of group awareness




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
coupling control




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
system architecture




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
COAST class hierarchy
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
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
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
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
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
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
applications - learning

                VITAL
                CROCODILE




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
applications - process modelling


                CHIPS




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
applications - roomware

                Beach




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
applications - games

                Co-operative Puzzle




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
applications - software dev.

                TUKAN

                ... and the UML-Editor




motivation
requirements
application
  structure
groupware
   model
realization
usage
  experiences
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
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
further info & download




www.openCoast.org

Weitere ähnliche Inhalte

Andere mochten auch (7)

SLego: Squeak and Lego Mindstorms
SLego: Squeak and Lego MindstormsSLego: Squeak and Lego Mindstorms
SLego: Squeak and Lego Mindstorms
 
Coordinated Testing with a Test-Server
Coordinated Testing with a Test-ServerCoordinated Testing with a Test-Server
Coordinated Testing with a Test-Server
 
Understanding Changes with Torch
Understanding Changes with TorchUnderstanding Changes with Torch
Understanding Changes with Torch
 
Innovation Technology Awards
Innovation Technology AwardsInnovation Technology Awards
Innovation Technology Awards
 
Inter-operabable Server Smalltalk
Inter-operabable Server SmalltalkInter-operabable Server Smalltalk
Inter-operabable Server Smalltalk
 
Automatic Strategies for Decision Support in TriageTelephone
Automatic Strategies for Decision Support in TriageTelephone Automatic Strategies for Decision Support in TriageTelephone
Automatic Strategies for Decision Support in TriageTelephone
 
OpenSpaces
OpenSpacesOpenSpaces
OpenSpaces
 

Ähnlich wie Coast

10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
Majong DevJfu
 
Bartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsBartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design Patterns
Jason Townsend, MBA
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuse
Marco Brambilla
 
P Training Presentation
P Training PresentationP Training Presentation
P Training Presentation
Gaurav Tyagi
 
Александр Белецкий "Архитектура Javascript приложений"
 Александр Белецкий "Архитектура Javascript приложений" Александр Белецкий "Архитектура Javascript приложений"
Александр Белецкий "Архитектура Javascript приложений"
Agile Base Camp
 

Ähnlich wie Coast (20)

How to Build Composite Applications with PRISM
How to Build Composite Applications with PRISMHow to Build Composite Applications with PRISM
How to Build Composite Applications with PRISM
 
42windmills: model driven cloud apps
42windmills: model driven cloud apps42windmills: model driven cloud apps
42windmills: model driven cloud apps
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Bartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design PatternsBartlesville Dot Net User Group Design Patterns
Bartlesville Dot Net User Group Design Patterns
 
Alliance Successful Selenium Automation
Alliance Successful Selenium AutomationAlliance Successful Selenium Automation
Alliance Successful Selenium Automation
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuse
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patterns
 
Coded UI - Test automation Practices from the Field
Coded UI - Test automation Practices from the FieldCoded UI - Test automation Practices from the Field
Coded UI - Test automation Practices from the Field
 
P Training Presentation
P Training PresentationP Training Presentation
P Training Presentation
 
Design Pattern lecture 2
Design Pattern lecture 2Design Pattern lecture 2
Design Pattern lecture 2
 
Queuing model based load testing of large enterprise applications
Queuing model based load testing of large enterprise applicationsQueuing model based load testing of large enterprise applications
Queuing model based load testing of large enterprise applications
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
MVVM for Modern Applications
MVVM for Modern ApplicationsMVVM for Modern Applications
MVVM for Modern Applications
 
Александр Белецкий "Архитектура Javascript приложений"
 Александр Белецкий "Архитектура Javascript приложений" Александр Белецкий "Архитектура Javascript приложений"
Александр Белецкий "Архитектура Javascript приложений"
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)
 
Design pattern
Design patternDesign pattern
Design pattern
 
CQRS: Command/Query Responsibility Segregation
CQRS: Command/Query Responsibility SegregationCQRS: Command/Query Responsibility Segregation
CQRS: Command/Query Responsibility Segregation
 
Ajs 2 c
Ajs 2 cAjs 2 c
Ajs 2 c
 
Scale Cloud across Enterprise
Scale Cloud across EnterpriseScale Cloud across Enterprise
Scale Cloud across Enterprise
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

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
  • 3. sample groupware application motivation requirements application structure groupware model realization collaborative UML editor 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
  • 12. logical session management motivation requirements application structure groupware model realization usage experiences
  • 13. provision of group awareness motivation requirements application structure groupware model realization usage experiences
  • 14. coupling control motivation requirements application structure groupware model realization usage experiences
  • 15. system architecture 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
  • 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. 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. 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. applications - learning VITAL CROCODILE motivation requirements application structure groupware model realization usage experiences
  • 24. applications - process modelling CHIPS motivation requirements application structure groupware model realization usage experiences
  • 25. applications - roomware Beach motivation requirements application structure groupware model 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
  • 30. further info & download www.openCoast.org