Replicated Service Objects -- A Strategy for Distributed Applications
Transcript of Replicated Service Objects -- A Strategy for Distributed Applications
![Page 1: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/1.jpg)
Martin is getting the projectorto workwith hislaptop.
![Page 2: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/2.jpg)
Replicated Service Objects
A Strategy for Distributed Applications
Martin McClure
![Page 3: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/3.jpg)
Background:GemStone/S
![Page 4: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/4.jpg)
30 Years!
![Page 5: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/5.jpg)
![Page 6: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/6.jpg)
GemStone/S•Server-side Smalltalk•Object Database
![Page 7: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/7.jpg)
Server-sideSmalltalk•Headless•Multi-User•Scalable
![Page 8: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/8.jpg)
ObjectDatabase•One persistent “image”•Shared transactionally• Merged at commit• Conflicts are detected
![Page 9: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/9.jpg)
GemBuilder for Smalltalk (GBS)•Interfaces VW or VA Smalltalk to GemStone
![Page 10: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/10.jpg)
![Page 11: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/11.jpg)
![Page 12: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/12.jpg)
GemBuilder for Smalltalk (GBS)•Interfaces VW or VA Smalltalk to GemStone
![Page 13: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/13.jpg)
GBS Main Features•Forwarders
• Remote messaging•Replicates
• Synchronized copy• (new) Remote
messaging
![Page 14: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/14.jpg)
Forwarder
ServerClient
![Page 15: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/15.jpg)
Forwarder
ServerClient
![Page 16: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/16.jpg)
Forwarder
ServerClient
![Page 17: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/17.jpg)
Forwarder
ServerClient
![Page 18: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/18.jpg)
Replicate
ServerClient
![Page 19: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/19.jpg)
Replicate
ServerClient
![Page 20: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/20.jpg)
Replicate
ServerClient
![Page 21: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/21.jpg)
Replicate
ServerClient
![Page 22: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/22.jpg)
Replicate
ServerClient
![Page 23: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/23.jpg)
Replicate
ServerClient
![Page 24: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/24.jpg)
Replicate
ServerClient
![Page 25: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/25.jpg)
Replicate
ServerClient
![Page 26: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/26.jpg)
Replicate
ServerClient
![Page 27: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/27.jpg)
Replicate
ServerClient
![Page 28: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/28.jpg)
TransparentDistribution
![Page 29: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/29.jpg)
TransparentDistribution
Good Idea
![Page 30: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/30.jpg)
TransparentDistribution
Good IdeaBAD
![Page 31: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/31.jpg)
DistributionConcerns•Correctness•Reliability•Performance
![Page 32: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/32.jpg)
DistributionConcerns•Correctness•Reliability•Performance
![Page 33: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/33.jpg)
DistributionConcerns•Correctness•Reliability•Performance
![Page 34: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/34.jpg)
DistributionConcerns•Correctness•Reliability•Performance
![Page 35: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/35.jpg)
An Embarrassing
Story
![Page 36: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/36.jpg)
n2
![Page 37: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/37.jpg)
One Month
![Page 38: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/38.jpg)
Tools used Forwarders
![Page 39: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/39.jpg)
Lessons•Test scaling•Test with latency•Need better design pattern
![Page 40: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/40.jpg)
ReplicatedServiceObjects
![Page 41: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/41.jpg)
Example:InspectorService
![Page 42: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/42.jpg)
ServerClient
![Page 43: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/43.jpg)
ServerClient
Inspector Service
theObjectproperties
![Page 44: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/44.jpg)
ServerClient
Inspector Service
theObjectproperties
'self' -> '0@0' 'class' -> 'Point'
'x' -> '0' 'y' -> '0'
Dictionary
![Page 45: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/45.jpg)
ServerClient
Inspector Service
theObjectproperties
'self' -> '0@0' 'class' -> 'Point'
'x' -> '0' 'y' -> '0'
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> '0' 'y' -> '0'
Dictionary
![Page 46: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/46.jpg)
ServerClient
Inspector Service
theObjectproperties
'self' -> '0@0' 'class' -> 'Point'
'x' -> '0' 'y' -> '0'
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> '0' 'y' -> '0'
Dictionary
![Page 47: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/47.jpg)
ServerClient
Inspector Service
theObjectproperties
'self' -> '0@0' 'class' -> 'Point'
'x' -> '0' 'y' -> '0'
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> '0' 'y' -> '0'
Dictionary
![Page 48: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/48.jpg)
ServerClient
Inspector Service
theObjectproperties
'self' -> '0@0' 'class' -> 'Point'
'x' -> '0' 'y' -> '0'
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> '0' 'y' -> '0'
Dictionary
![Page 49: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/49.jpg)
ServerClient
Inspector Service
theObjectproperties
'self' -> '0@0' 'class' -> 'Point'
'x' -> '0' 'y' -> '0'
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> ' 42 '
'y' -> '0'
Dictionary
![Page 50: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/50.jpg)
ServerClient
Inspector Service
theObjectproperties
'self' -> '0@0' 'class' -> 'Point'
'x' -> '0' 'y' -> '0'
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> ' 42 '
'y' -> '0'
Dictionary
![Page 51: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/51.jpg)
ServerClient
Inspector Service
theObjectproperties
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> ' 42 '
'y' -> '0'
Dictionary
'self' -> '0@0' 'class' -> 'Point'
'x' -> ' 42 ' 'y' -> '0'
![Page 52: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/52.jpg)
ServerClient
Inspector Service
theObjectproperties
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> ' 42 '
'y' -> '0'
Dictionary
'self' -> '0@0' 'class' -> 'Point'
'x' -> ' 42 ' 'y' -> '0'
![Page 53: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/53.jpg)
ServerClient
Inspector Service
theObjectproperties
Dictionary
Inspector Service
properties'self' -> '0@0'
'class' -> 'Point' 'x' -> ' 42 '
'y' -> '0'
Dictionary
'self' -> '0@0' 'class' -> 'Point'
'x' -> ' 42 ' 'y' -> '0'
![Page 54: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/54.jpg)
Principles•Replicate everything you'll need frequently
![Page 55: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/55.jpg)
Principles•Represent information as basic objects when necessary.
![Page 56: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/56.jpg)
Principles•Do everything you can predict in a single round trip.
![Page 57: Replicated Service Objects -- A Strategy for Distributed Applications](https://reader031.fdocuments.us/reader031/viewer/2022022414/589d01271a28ab255c8b4f35/html5/thumbnails/57.jpg)
Replicated Service Objects
A Strategy for Distributed Applications
Martin McClure