280 likes | 373 Vues
Learn how architectural principles address complex problems in commercial systems, using examples like Google, REST, peer-to-peer, and cloud computing. Understand fallacies of distributed systems and the benefits of REST style.
E N D
Applied Architectures Eunyoung Hwang
Objectives • How principles have been used to solve challenging problems • How architecture can be used to explain and analyze common commercial systems
Outline • Distributed Network-based Applications • Limitations • REST • Commercial Internet Scale Applications: Google • Decentralized Architecture • Grid Computing • Cloud Computing • Peer-2-Peer: Napster, Grutella, Skype
Fallacies of Distributed Systems Viewpoint • The network is reliable • Latency is zero • Bandwidth is infinite • The network is secure • Topology does not change • There is one administrator • Transport cost is zero • The network is homogeneous
WWW Architecture • World Wide Web is distributed, decentralized, hypermedia application.
Representational State Transfer (REST) Style • A set of constraints based on WWW architectural style User agent Origin Server Request Proxies Gateways Response C C C C Intermediaries
REST (cont.) • Constraints • Client-server • Context-free (stateless) • Cache • Code on demand • Layered • Uniform Interface • Benefits • Efficiency • Scalability • User perceived performance
Commercial Internet-Scale Applications • Google strategy • Simpler storage system offering fewer features • Data Storage and manipulation • A high fault-tolerant platform • Cost effective manner • Google design • Google distributed file system (GFS) • MapReduce
MapReduce • Large-scale data processing • Map • Take input key/value pair, generate a set of intermediate pair • Reduce • Merge all intermediate values associated with the same intermediate key Map (k1, v1) -> list(k2, v2) Reduce (k2, list(v2)) -> list(v2) • E.g., word frequency • map (URL, contents) -> set of (word, 1) • Reduce (word, 1) -> set of (word, sum)
MapReduce (cont.) • Architecture Provides • Automatic parallelization & distribution • Fault tolerance • Walker failure • Master failure
Decentralized Architecture • Networked applications where there are multiple authorities • Not a new idea • E.g., web sites, international postal mail • Designing challenges
Grid Computing • Coordinated resource sharing and computation in a decentralized environment • Technologies that allow consumers to obtain computing power on demand • Starts with large-scale federated resources • Issues • Interoperability • Security
Cloud Computing • A key computing platform for sharing resources • A specialized distributed computing paradigm • Massively scalable • Different level of service • Driven by economies of scale • Dynamically configured and delivered on demand • What makes Cloud Computing interesting now? • Not a new concept!
Three level Services by Cloud Computing • Infrastructure as a Service(IaaS) • Amazon EC2 • Platform as a Service (PaaS) • Google App Engine • Software as a Service (Saas) • Salesforce
Napster • Hybrid client-server/P2P
Gnutella • Pure decentralized P2P
Skype • Overlayed P2P
Review • Distributed Network-based Applications • REST • - Google: GFS, MapReduce • Decentralized Architecture • - Grid Computing • - Cloud Computing • - Peer-2-Peer: Napster, Grutella, Skype
References • Principled Design of The Modern Web Architecture. • Fielding, Roy T., and Richard N. Taylor. • Cloud Computing and Grid Computing 360-Degree Compared. • Foster, Ian, and Zhao Yong. • MapReduce: Simplied Data Processing on Large Clusters • Dean, Jeffrey, and Sanjay Ghemawat. • The Google File System. • Ghemawat, Sanjay, Howard Gobioff, and Shun-Tak Leung