Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Replicated Service Objects -- A Strategy for Distributed Applications

367 views

Published on

Replicated Service Objects -- A Strategy for Distributed Applications
Video: https://youtu.be/_MtwXqYsBD0
Fri, August 26, 11:00am – 11:45am

First Name: Martin
Last Name: McClure
Email: martin.mcclure@gemtalksystems.com
Title: Replicated Service Objects -- A Strategy for Distributed Applications

Type: Talk

Abstract:
Early in the history of distributed Smalltalk applications, designers
built systems that provided transparent distribution. This enabled
distributed applications to be written almost as if they were on a
single machine. After the explosion of the Internet in the late '90s, it
was widely recognized that this approach led to applications that did
not perform well -- application developers needed to be aware of and
design around communication latency. One solution to this problem is
Replicated Service Objects, an architecture for distributed Smalltalk
applications that makes it easy to minimize the impact of network latency.

Bio:
Martin has been interested in Smalltalk since he first heard about it in
1975. After a frustrating ten-year wait he finally got his hands on a
running Smalltalk system and hasn't let go since. As a senior engineer
working on GemStone Smalltalk products at GemTalk Systems, he leads a
team that designs and implements a distributed object system that acts
as a bridge between a Smalltalk client and a GemStone Smalltalk server.
In his spare time, he works on Mist (a Smalltalk-like language with
improved modularity and security and no virtual machine) and does a lot
of contra dancing. Lately, he's been working on remodeling an old house
with attached former church which will become his home with built-in
dance hall.

Published in: Software
  • Video: https://youtu.be/_MtwXqYsBD0
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Replicated Service Objects -- A Strategy for Distributed Applications

  1. 1. Martin is getting the projector to work with his laptop.
  2. 2. Replicated Service Objects A Strategy for Distributed Applications Martin McClure
  3. 3. Background: GemStone/S
  4. 4. 30 Years!
  5. 5. GemStone/S •Server-side Smalltalk •Object Database
  6. 6. Server-side Smalltalk •Headless •Multi-User •Scalable
  7. 7. Object Database •One persistent “image” •Shared transactionally • Merged at commit • Conflicts are detected
  8. 8. GemBuilder for Smalltalk (GBS) •Interfaces VW or VA Smalltalk to GemStone
  9. 9. GemBuilder for Smalltalk (GBS) •Interfaces VW or VA Smalltalk to GemStone
  10. 10. GBS Main Features •Forwarders • Remote messaging •Replicates • Synchronized copy • (new) Remote messaging
  11. 11. Forwarder Server Client
  12. 12. Forwarder Server Client
  13. 13. Forwarder Server Client
  14. 14. Forwarder Server Client
  15. 15. Replicate Server Client
  16. 16. Replicate Server Client
  17. 17. Replicate Server Client
  18. 18. Replicate Server Client
  19. 19. Replicate Server Client
  20. 20. Replicate Server Client
  21. 21. Replicate Server Client
  22. 22. Replicate Server Client
  23. 23. Replicate Server Client
  24. 24. Replicate Server Client
  25. 25. Transparent Distribution
  26. 26. Transparent Distribution Good Idea
  27. 27. Transparent Distribution Good Idea BAD
  28. 28. Distribution Concerns •Correctness •Reliability •Performance
  29. 29. Distribution Concerns •Correctness •Reliability •Performance 
  30. 30. Distribution Concerns •Correctness •Reliability •Performance  
  31. 31. Distribution Concerns •Correctness •Reliability •Performance   
  32. 32. An Embarrassing Story
  33. 33. n2
  34. 34. One Month
  35. 35. Tools used Forwarders
  36. 36. Lessons •Test scaling •Test with latency •Need better design pattern
  37. 37. Replicated Service Objects
  38. 38. Example: Inspector Service
  39. 39. Server Client
  40. 40. Server Client Inspector Service theObject properties
  41. 41. Server Client Inspector Service theObject properties 'self' -> '0@0' 'class' -> 'Point' 'x' -> '0' 'y' -> '0' Dictionary
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. 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'
  49. 49. 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'
  50. 50. 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'
  51. 51. Principles •Replicate everything you'll need frequently
  52. 52. Principles •Represent information as basic objects when necessary.
  53. 53. Principles •Do everything you can predict in a single round trip.
  54. 54. Replicated Service Objects A Strategy for Distributed Applications Martin McClure

×