how to design a distributed system
DESCRIPTION
Introduce one framework of designing distributed system for small and medium company.TRANSCRIPT
![Page 1: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/1.jpg)
How to design a distributed system
By Jinglun Li
![Page 2: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/2.jpg)
Agenda
• A framework of designing distributed system• Two critical challenges
![Page 3: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/3.jpg)
RequirementsFunctionality Quality Constraint
Business Requirements A vertical search engine which gears the market. (e.g. a music search engine)
Release in three months…
10 machines…
Users Requirements 1. Show query suggestions when user types words.
2. Show records which user are most likely searching for.
…
1. Response quickly. 2. Search records are good.…
Development Requirements 1. Flexibility2. Maintainable3. Scalable…
Resource:One UEDOne Frontend DevelopersThree Backend Developers
![Page 4: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/4.jpg)
From Mud to Structure
![Page 5: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/5.jpg)
NEAT
![Page 6: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/6.jpg)
Layer
![Page 7: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/7.jpg)
Pipe and Filter
![Page 8: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/8.jpg)
![Page 9: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/9.jpg)
Logical View
![Page 10: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/10.jpg)
Logical View (cont.)
![Page 11: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/11.jpg)
4 + 1 Views
![Page 12: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/12.jpg)
4 + 1 Views (cont.)
![Page 13: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/13.jpg)
Development View
![Page 14: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/14.jpg)
Development View (cont.)
• Src/– Php/– Search manager/– Search/– Index/– …
• Util/– Log/– String/– Persistence/
• …
![Page 15: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/15.jpg)
Process View
![Page 16: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/16.jpg)
Deployment View
![Page 17: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/17.jpg)
Review
![Page 18: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/18.jpg)
Challenges
![Page 19: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/19.jpg)
Distribution Infrastructure
• Broker• Message• Publisher-Subscriber
![Page 20: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/20.jpg)
Broker
![Page 21: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/21.jpg)
Broker (Server Side)
![Page 22: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/22.jpg)
Messaging
![Page 23: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/23.jpg)
Publisher-Subscriber
![Page 24: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/24.jpg)
Models Summary
![Page 25: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/25.jpg)
Concurrency
• Half-Sync/Half-Async• Leader/Followers• Active Object• Monitor Objector
![Page 26: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/26.jpg)
Half-Sync/Half-Async
![Page 27: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/27.jpg)
Leader/Follower
![Page 28: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/28.jpg)
Active Object
![Page 29: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/29.jpg)
Monitor Object
![Page 30: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/30.jpg)
Reference1. Pattern-Oriented Software Architecture-Volume 1 A System of Patterns
19962. Pattern-Oriented Software Architecture-Volume 3 Patterns for Resource
Management3. Pattern-Oriented Software Architecture-Volume 4 A Pattern Language for
Distributed Computing May 20074. Pattern-Oriented Software Architecture-Volume 5 On Patterns and Pattern
Languages 20075. SOA in Practice The art of Distributed System Design 20086. Domain-Driven Design Trackling Complexity in The Heart of Software 20107. The 4+1 View Model of Architecture8. Applying UML and Patterns An Introduction to Object-Oriented Analysis
and Design and Iterative Development 20069. 一线架构师 2009
![Page 31: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/31.jpg)
Thanks!
![Page 32: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/32.jpg)
Backup
![Page 33: How to design a distributed system](https://reader035.vdocument.in/reader035/viewer/2022081518/54b736da4a7959454e8b4608/html5/thumbnails/33.jpg)