Information Technology Reference
In-Depth Information
Chapter 1. Designing in a Distributed World
There are two ways of constructing a software design: One way is to make it so
simple that there are obviously no deficiencies and the other way is to make it so
complicated that there are no obvious deficiencies.
—C.A.R. Hoare, The 1980 ACM Turing Award Lecture
HowdoesGoogleSearchwork?HowdoesyourFacebookTimelinestayupdatedaroundthe
clock?HowdoesAmazonscananever-growingcatalogofitemstotellyouthatpeoplewho
bought this item also bought socks?
Is it magic? No, it's distributed computing.
This chapter is an overview of what is involved in designing services that use distributed
computing techniques. These are the techniques all large web sites use to achieve their size,
scale, speed, and reliability.
Distributedcomputingistheartofbuildinglargesystemsthatdividetheworkovermany
machines. Contrast this with traditional computing systems where a single computer runs
softwarethatprovidesaservice,orclient-servercomputingwheremanymachinesremotely
access a centralized service. In distributed computing there are typically hundreds or thou-
sands of machines working together to provide a large service.
Distributed computing is different from traditional computing in many ways. Most of
these differences are due to the sheer size of the system itself. Hundreds or thousands of
computers may be involved. Millions of users may be served. Billions and sometimes tril-
lions of queries may be processed.
Search WWH ::




Custom Search