How to design a distributed system
-
Upload
jinglun-li -
Category
Technology
-
view
533 -
download
1
description
Transcript of How to design a distributed system
How to design a distributed system
By Jinglun Li
Agenda
• A framework of designing distributed system• Two critical challenges
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
From Mud to Structure
NEAT
Layer
Pipe and Filter
Logical View
Logical View (cont.)
4 + 1 Views
4 + 1 Views (cont.)
Development View
Development View (cont.)
• Src/– Php/– Search manager/– Search/– Index/– …
• Util/– Log/– String/– Persistence/
• …
Process View
Deployment View
Review
Challenges
Distribution Infrastructure
• Broker• Message• Publisher-Subscriber
Broker
Broker (Server Side)
Messaging
Publisher-Subscriber
Models Summary
Concurrency
• Half-Sync/Half-Async• Leader/Followers• Active Object• Monitor Objector
Half-Sync/Half-Async
Leader/Follower
Active Object
Monitor Object
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
Thanks!
Backup