SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque

SLego: Squeak and Lego Mindstorms
SLego: Squeak and Lego MindstormsSLego: Squeak and Lego Mindstorms
SLego: Squeak and Lego MindstormsESUG
 
Coordinated Testing with a Test-Server
Coordinated Testing with a Test-ServerCoordinated Testing with a Test-Server
Coordinated Testing with a Test-ServerESUG
 
Understanding Changes with Torch
Understanding Changes with TorchUnderstanding Changes with Torch
Understanding Changes with TorchESUG
 
Innovation Technology Awards
Innovation Technology AwardsInnovation Technology Awards
Innovation Technology AwardsESUG
 
Inter-operabable Server Smalltalk
Inter-operabable Server SmalltalkInter-operabable Server Smalltalk
Inter-operabable Server SmalltalkESUG
 
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 ESUG
 
OpenSpaces
OpenSpacesOpenSpaces
OpenSpacesESUG
 

Destaque (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
 

Semelhante a Coast

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 PRISMDataLeader.io
 
42windmills: model driven cloud apps
42windmills: model driven cloud apps42windmills: model driven cloud apps
42windmills: model driven cloud apps42windmills
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong 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 PatternsJason Townsend, MBA
 
Alliance Successful Selenium Automation
Alliance Successful Selenium AutomationAlliance Successful Selenium Automation
Alliance Successful Selenium Automationsadams22
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuseMarco Brambilla
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patternssukumarraju6
 
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 FieldClemens Reijnen
 
P Training Presentation
P Training PresentationP Training Presentation
P Training PresentationGaurav Tyagi
 
Design Pattern lecture 2
Design Pattern lecture 2Design Pattern lecture 2
Design Pattern lecture 2Julie Iskander
 
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 applicationsLeonid Grinshpan, Ph.D.
 
MVVM for Modern Applications
MVVM for Modern ApplicationsMVVM for Modern Applications
MVVM for Modern ApplicationsJeremy Likness
 
Александр Белецкий "Архитектура Javascript приложений"
 Александр Белецкий "Архитектура Javascript приложений" Александр Белецкий "Архитектура Javascript приложений"
Александр Белецкий "Архитектура Javascript приложений"Agile Base Camp
 
Lecture 12 requirements modeling - (system analysis)
Lecture 12   requirements modeling - (system analysis)Lecture 12   requirements modeling - (system analysis)
Lecture 12 requirements modeling - (system analysis)IIUI
 
CQRS: Command/Query Responsibility Segregation
CQRS: Command/Query Responsibility SegregationCQRS: Command/Query Responsibility Segregation
CQRS: Command/Query Responsibility SegregationBrian Ritchie
 
Scale Cloud across Enterprise
Scale Cloud across EnterpriseScale Cloud across Enterprise
Scale Cloud across EnterpriseChris Haddad
 

Semelhante a 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
 

Mais de 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 programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
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 RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
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 resultsESUG
 
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 6ESUG
 
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 GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
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 ModesESUG
 
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 ReportESUG
 
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 APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
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 CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
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 JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
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 TransformationsESUG
 

Mais de 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
 

Último

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?Antenna Manufacturer Coco
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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 DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

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?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

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