280 likes | 371 Views
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
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