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

Slides:



Advertisements
Similar presentations
REST Introduction 吴海生 博克软件(杭州)有限公司.
Advertisements

1 Chapter 10 Protecting Data Integrity in a Multiuser Environment.
A component- and message-based architectural style for GUI software
Object-Oriented Software Construction Bertrand Meyer 2nd ed., Prentice Hall, 1997.
Chapter 3: Programming Web Services Service-Oriented Computing: Semantics, Processes, Agents – Munindar P. Singh and Michael N. Huhns, Wiley, 2005.
Cache Coherent Distributed Shared Memory. Motivations Small processor count –SMP machines –Single shared memory with multiple processors interconnected.
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
1 Countermeasures against Consistency Anomalies in Databases with Relaxed ACID Properties. By Lars Frank Copenhagen Business School.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Saul Greenberg Groupware Infrastructures Saul Greenberg Professor Department of Computer Science University of Calgary.
Transaction Processing Lecture ACID 2 phase commit.
1 IBM SanFrancisco Product Evaluation Negotiated Option Presentation By Les Beckford May 2001.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
Transaction Processing IS698 Min Song. 2 What is a Transaction?  When an event in the real world changes the state of the enterprise, a transaction is.
CHIME: A Metadata-Based Distributed Software Development Environment Stephen E. Dossick Dept. of Computer Science Columbia University
Chapter 12 Distributed Database Management Systems
©Silberschatz, Korth and Sudarshan18.1Database System Concepts Centralized Systems Run on a single computer system and do not interact with other computer.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Groupware toolkits for Synchronous work Saul Greenberg, Mark Roseman Dept. of Computer Science, Univ. of Calgary In M. Beaoudouin-Lafon, editor, Computer-Supported.
Client-Server Computing in Mobile Environments
Distributed Databases
National Manager Database Services
Presented by: Alvaro Llanos E.  Motivation and Overview  Frangipani Architecture overview  Similar DFS  PETAL: Distributed virtual disks ◦ Overview.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Database Replication. Replication Replication is the process of sharing information so as to ensure consistency between redundant resources, such as software.
1 INTRO TO BUSINESS COMPONENTS FOR JAVA (BC4J) Matt Fierst Computer Resource Team OracleWorld Session
The Design Discipline.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
An Introduction to Software Architecture
Sofia, Bulgaria | 9-10 October SQL Server 2005 High Availability for developers Vladimir Tchalkov Crossroad Ltd. Vladimir Tchalkov Crossroad Ltd.
Replication and Consistency. Reference The Dangers of Replication and a Solution, Jim Gray, Pat Helland, Patrick O'Neil, and Dennis Shasha. In Proceedings.
Replication & EJB Graham Morgan. EJB goals Ease development of applications –Hide low-level details such as transactions. Provide framework defining the.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
CoFM: An Environment for Collaborative Feature Modeling Li Yi Institute of Software, School of EECS, Peking University Key Laboratory of High Confidence.
Consistent and Efficient Database Replication based on Group Communication Bettina Kemme School of Computer Science McGill University, Montreal.
Distributed Database Systems Overview
Unit 9 Transaction Processing. Key Concepts Distributed databases and DDBMS Distributed database advantages. Distributed database disadvantages Using.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Distributed Computing Systems CSCI 4780/6780. Geographical Scalability Challenges Synchronous communication –Waiting for a reply does not scale well!!
Architectural Design of Distributed Applications Chapter 13 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Computer supported cooperative work -Basic concepts
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Oracle9i Performance Tuning Chapter 11 Advanced Tuning Topics.
Highly Available Services and Transactions with Replicated Data Jason Lenthe.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 1 Database Systems.
IT 5433 LM1. Learning Objectives Understand key terms in database Explain file processing systems List parts of a database environment Explain types of.
Resource Optimization for Publisher/Subscriber-based Avionics Systems Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee.
CLOUD ARCHITECTURE Many organizations and researchers have defined the architecture for cloud computing. Basically the whole system can be divided into.
A Technical Overview of Microsoft® SQL Server™ 2005 High Availability Beta 2 Matthew Stephen IT Pro Evangelist (SQL Server)
Flexible Synchronisation of Shared Groupware Objects
CMSC 611: Advanced Computer Architecture
Model Checking for an Executable Subset of UML
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Outline Midterm results summary Distributed file systems – continued
CSE 4340/5349 Mobile Systems Engineering
An Introduction to Software Architecture
write on board in advance: handouts, names, Hoare quote
Service-Oriented Computing: Semantics, Processes, Agents
Distributed Database Management Systems
Service-Oriented Computing: Semantics, Processes, Agents
Presentation transcript:

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

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

sample groupware application collaborative UML editor motivation requirements application structure groupware model realization 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 It is error prone. process synchronization data consistency network (components) failure motivation requirements application structure groupware 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 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

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

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 motivation requirements application structure groupware model realization usage experiences ViewController Model ApplicationModel or ValueModel DomainModel application logic domain or business logic reusable

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 shared motivation requirements application structure groupware model realization usage experiences

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 shared motivation requirements application structure groupware model realization usage experiences

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

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

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

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

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

view updating: change notification motivation requirements application structure groupware model realization usage experiences name position aClassModel selected... aClassAppModel domainModel key dependency invalidation self invalidateRectangle: boundsForInvalidation

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

... and the UML-Editor applications - software dev. TUKAN 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 was reached number of users VITAL was tested with up to 12 simulanousley working users motivation requirements application structure groupware model realization usage experiences

usage experiences 2 network connection low bandwidth for synchronisation of replica initial effort for replication VITAL tested via 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

further info & download