SlideShare a Scribd company logo
Martin is getting the
projector
to work
with his
laptop.
Replicated
Service Objects
A Strategy for
Distributed
Applications
Martin McClure
Background:
GemStone/S
30 Years!
Replicated Service Objects -- A Strategy for Distributed Applications
GemStone/S
•Server-side Smalltalk
•Object Database
Server-side
Smalltalk
•Headless
•Multi-User
•Scalable
Object
Database
•One persistent “image”
•Shared transactionally
• Merged at commit
• Conflicts are detected
GemBuilder for
Smalltalk (GBS)
•Interfaces VW or VA
Smalltalk to GemStone
Replicated Service Objects -- A Strategy for Distributed Applications
Replicated Service Objects -- A Strategy for Distributed Applications
GemBuilder for
Smalltalk (GBS)
•Interfaces VW or VA
Smalltalk to GemStone
GBS Main Features
•Forwarders
• Remote messaging
•Replicates
• Synchronized copy
• (new) Remote
messaging
Forwarder
Server
Client
Forwarder
Server
Client
Forwarder
Server
Client
Forwarder
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Replicate
Server
Client
Transparent
Distribution
Transparent
Distribution
Good Idea
Transparent
Distribution
Good Idea
BAD
Distribution
Concerns
•Correctness
•Reliability
•Performance
Distribution
Concerns
•Correctness
•Reliability
•Performance

Distribution
Concerns
•Correctness
•Reliability
•Performance


Distribution
Concerns
•Correctness
•Reliability
•Performance



An
Embarrassing
Story
n2
One
Month
Tools used
Forwarders
Lessons
•Test scaling
•Test with latency
•Need better design
pattern
Replicated
Service
Objects
Example:
Inspector
Service
Server
Client
Server
Client
Inspector
Service
theObject
properties
Server
Client
Inspector
Service
theObject
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Server
Client
Inspector
Service
theObject
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Server
Client
Inspector
Service
theObject
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Server
Client
Inspector
Service
theObject
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Server
Client
Inspector
Service
theObject
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Server
Client
Inspector
Service
theObject
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> ' 42 '
'y' -> '0'
Dictionary
Server
Client
Inspector
Service
theObject
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> '0'
'y' -> '0'
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> ' 42 '
'y' -> '0'
Dictionary
Server
Client
Inspector
Service
theObject
properties
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> ' 42 '
'y' -> '0'
Dictionary
'self' -> '0@0'
'class' -> 'Point'
'x' -> ' 42 '
'y' -> '0'
Server
Client
Inspector
Service
theObject
properties
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> ' 42 '
'y' -> '0'
Dictionary
'self' -> '0@0'
'class' -> 'Point'
'x' -> ' 42 '
'y' -> '0'
Server
Client
Inspector
Service
theObject
properties
Dictionary
Inspector
Service
properties
'self' -> '0@0'
'class' -> 'Point'
'x' -> ' 42 '
'y' -> '0'
Dictionary
'self' -> '0@0'
'class' -> 'Point'
'x' -> ' 42 '
'y' -> '0'
Principles
•Replicate everything
you'll need frequently
Principles
•Represent information
as basic objects when
necessary.
Principles
•Do everything you can
predict in a single round
trip.
Replicated
Service Objects
A Strategy for
Distributed
Applications
Martin McClure

More Related Content

PPTX
MDM_123
PPT
Rackonomics and Network Virtualization with BLADE RackSwitch
PPTX
Building a Scalable Federated Hybrid Cloud
PDF
Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...
PDF
GemStone/64 product update and road map
PDF
Stories About Renraku — the new Quality Model of Pharo
PDF
The road to remote debugger
PDF
Perfection & Feedback Loops or: why worse is better
MDM_123
Rackonomics and Network Virtualization with BLADE RackSwitch
Building a Scalable Federated Hybrid Cloud
Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...
GemStone/64 product update and road map
Stories About Renraku — the new Quality Model of Pharo
The road to remote debugger
Perfection & Feedback Loops or: why worse is better

Similar to Replicated Service Objects -- A Strategy for Distributed Applications (20)

PDF
Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...
PPTX
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
PDF
Reinventing Microservices Efficiency and Innovation with Single-Runtime
PDF
Webinar: Cloud Data Masking - Tips to Test Software Securely
PPTX
Webinar Slides: High Volume MySQL HA: SaaS Continuous Operations with Terabyt...
PDF
The Bridge to Cloud (Peter Gustafsson, Confluent) London 2019 Confluent Strea...
PDF
Cloudian dynamic consistency
PDF
Cloud Foundry Container Runtimeで快適Kubernetes運用
PDF
DockerCon2017 - Skypilot
PPTX
20191201 kubernetes managed weblogic revival - part 2
PDF
vidhi talk.pdf
PDF
EOUG95 - Client Server Very Large Databases - Presentation
PDF
Zimbra Collaboration Suite Vs Microsoft Exchange 2008
PDF
ASZ-3034 Build a WebSphere Linux Cloud on System z: From Roll-Your-Own to Pre...
PDF
Activision's Skypilot: Delivering Amazing Game Experiences Through Containeri...
PDF
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
PDF
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
PDF
The Kubernetes WebLogic revival (part 2)
PDF
Service Testing & Virtualization in an Enterprise Environments
PPTX
Watching the Clouds: Challenges with Monitoring Hybrid Cloud Environments
Change Data Streaming Patterns For Microservices With Debezium (Gunnar Morlin...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Webinar: Cloud Data Masking - Tips to Test Software Securely
Webinar Slides: High Volume MySQL HA: SaaS Continuous Operations with Terabyt...
The Bridge to Cloud (Peter Gustafsson, Confluent) London 2019 Confluent Strea...
Cloudian dynamic consistency
Cloud Foundry Container Runtimeで快適Kubernetes運用
DockerCon2017 - Skypilot
20191201 kubernetes managed weblogic revival - part 2
vidhi talk.pdf
EOUG95 - Client Server Very Large Databases - Presentation
Zimbra Collaboration Suite Vs Microsoft Exchange 2008
ASZ-3034 Build a WebSphere Linux Cloud on System z: From Roll-Your-Own to Pre...
Activision's Skypilot: Delivering Amazing Game Experiences Through Containeri...
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
z/VM 6.2: Increasing the Endless Possibilities of Virtualization
The Kubernetes WebLogic revival (part 2)
Service Testing & Virtualization in an Enterprise Environments
Watching the Clouds: Challenges with Monitoring Hybrid Cloud Environments
Ad

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)
Ad

Recently uploaded (20)

PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Digital Systems & Binary Numbers (comprehensive )
PPTX
L1 - Introduction to python Backend.pptx
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
Digital Strategies for Manufacturing Companies
PDF
top salesforce developer skills in 2025.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Navsoft: AI-Powered Business Solutions & Custom Software Development
2025 Textile ERP Trends: SAP, Odoo & Oracle
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Softaken Excel to vCard Converter Software.pdf
Digital Systems & Binary Numbers (comprehensive )
L1 - Introduction to python Backend.pptx
Design an Analysis of Algorithms II-SECS-1021-03
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Computer Software and OS of computer science of grade 11.pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Which alternative to Crystal Reports is best for small or large businesses.pdf
Designing Intelligence for the Shop Floor.pdf
Nekopoi APK 2025 free lastest update
Digital Strategies for Manufacturing Companies
top salesforce developer skills in 2025.pdf
Odoo Companies in India – Driving Business Transformation.pdf
How to Choose the Right IT Partner for Your Business in Malaysia

Replicated Service Objects -- A Strategy for Distributed Applications