Front Cover
Half Title
Title Page
Copyright
Dedication
Contents
Preface
Foreword
1 Introduction
1.1 Network-Centric Computing and Network-Centric Content
1.2 Peer-to-Peer Systems
1.3 Cloud Computing: An Old Idea Whose Time Has Come
1.4 Cloud Computing Delivery Models and Services
1.5 Ethical Issues in Cloud Computing
1.6 Cloud Vulnerabilities
1.7 Major Challenges Faced by Cloud Computing
1.8 Further Reading
1.9 History Notes
1.10 Exercises and Problems
2 Parallel and Distributed Systems
2.1 Parallel Computing
2.2 Parallel Computer Architecture
2.3 Distributed Systems
2.4 Global State of a Process Group
2.5 Communication Protocols and Process Coordination
2.6 Logical Clocks
2.7 Message Delivery Rules; Causal Delivery
2.8 Runs and Cuts; Causal History
2.9 Concurrency
2.10 Atomic Actions
2.11 Consensus Protocols
2.12 Modeling Concurrency with Petri Nets
2.13 Enforced Modularity: The Client-Server Paradigm
2.14 Further Reading
2.15 History Notes
2.16 Exercises and Problems
3 Cloud Infrastructure
3.1 Cloud Computing at Amazon
3.2 Cloud Computing: The Google Perspective
3.3 Microsoft Windows Azure and Online Services
3.4 Open-Source Software Platforms for Private Clouds
3.5 Cloud Storage Diversity and Vendor Lock-in
3.6 Cloud Computing Interoperability: The Intercloud
3.7 Energy Use and Ecological Impact of Large-Scale Data Centers
3.8 Service- and Compliance-Level Agreements
3.9 Responsibility Sharing Between User and Cloud Service Provider
3.10 User Experience
3.11 Software Licensing
3.12 Further Reading
3.13 History Notes
3.14 Exercises and Problems
4 Cloud Computing: Applications and Paradigms
4.1 Challenges for Cloud Computing
4.2 Existing Cloud Applications and New Application Opportunities
4.3 Architectural Styles for Cloud Applications
4.4 Workflows: Coordination of Multiple Activities
4.5 Coordination Based on a State Machine Model: The ZooKeeper
4.6 The MapReduce Programming Model
4.7 A Case Study: The GrepTheWeb Application
4.8 Clouds for Science and Engineering
4.9 High-Performance Computing on a Cloud
4.10 Cloud Computing for Biology Research
4.11 Social Computing, Digital Content, and Cloud Computing
4.12 Further Reading
4.13 Exercises and Problems
5 Cloud Resource Virtualization
5.1 Virtualization
5.2 Layering and Virtualization
5.3 Virtual Machine Monitors
5.4 Virtual Machines
5.5 Performance and Security Isolation
5.6 Full Virtualization and Paravirtualization
5.7 Hardware Support for Virtualization
5.8 Case Study: Xen, a VMM Based on Paravirtualization
5.9 Optimization of Network Virtualization in Xen 2.0
5.10 vBlades: Paravirtualization Targeting an x86-64 Itanium Processor
5.11 A Performance Comparison of Virtual Machines
5.12 The Darker Side of Virtualization
5.13 Software Fault Isolation
5.14 Further Reading
5.15 History Notes
5.16 Exercises and Problems
6 Cloud Resource Management and Scheduling
6.1 Policies and Mechanisms for Resource Management
6.2 Applications of Control Theory to Task Scheduling on a Cloud
6.3 Stability of a Two-Level Resource Allocation Architecture
6.4 Feedback Control Based on Dynamic Thresholds
6.5 Coordination of Specialized Autonomic Performance Managers
6.6 A Utility-Based Model for Cloud-Based Web Services
6.7 Resource Bundling: Combinatorial Auctions for Cloud Resources
6.8 Scheduling Algorithms for Computing Clouds
6.9 Fair Queuing
6.10 Start-Time Fair Queuing
6.11 Borrowed Virtual Time
6.12 Cloud Scheduling Subject to Deadlines
6.13 Scheduling MapReduce Applications Subject to Deadlines
6.14 Resource Management and Dynamic Application Scaling
6.15 Further Reading
6.16 Exercises and Problems
7 Networking Support
7.1 Packet-Switched Networks
7.2 The Internet
7.3 Internet Migration to IPv6
7.4 The Transformation of the Internet
7.5 Web Access and the TCP Congestion Control Window
7.6 Network Resource Management
7.7 Interconnection Networks for Computer Clouds
7.8 Storage Area Networks
7.9 Content-Delivery Networks
7.10 Overlay Networks and Small-World Networks
7.11 Scale-Free Networks
7.12 Epidemic Algorithms
7.12.1 Susceptible-Infective (SI)
7.12.2 Susceptible-Infectious-Recover (SIR)
7.12.3 Susceptible-Infective-Susceptible (SIS)
7.13 Further Reading
7.14 History Notes
7.15 Exercises and Problems
8 Storage Systems
8.1 The Evolution of Storage Technology
8.2 Storage Models, File Systems, and Databases
8.3 Distributed File Systems: The Precursors
8.4 General Parallel File System
8.5 Google File System
8.6 Apache Hadoop
8.7 Locks and Chubby: A Locking Service
8.8 Transaction Processing and NoSQL Databases
8.9 BigTable
8.10 Megastore
8.11 History Notes
8.12 Further Reading
8.13 Exercises and Problems
9 Cloud Security
9.1 Cloud Security Risks
9.2 Security: The Top Concern for Cloud Users
9.3 Privacy and Privacy Impact Assessment
9.4 Trust
9.5 Operating System Security
9.6 Virtual Machine Security
9.7 Security of Virtualization
9.8 Security Risks Posed by Shared Images
9.9 Security Risks Posed by a Management OS
9.10 Xoar: Breaking the Monolithic Design of the TCB
9.11 A Trusted Virtual Machine Monitor
9.12 Further Reading
9.13 Exercises and Problems
10 Complex Systems and Self-Organization
10.1 Complex Systems
10.2 Abstraction and Physical Reality
10.3 Quantifying Complexity
10.4 Emergence and Self-Organization
10.5 Composability Bounds and Scalability
10.6 Modularity, Layering, and Hierarchy
10.7 More on the Complexity of Computing and Communication Systems
10.8 Systems of Systems: Challenges and Solutions
10.9 Further Reading
10.10 Exercises and Problems
11 Cloud Application Development
11.1 Amazon Web Services: EC2 Instances
11.2 Connecting Clients to Cloud Instances Through Firewalls
11.3 Security Rules for Application and Transport Layer Protocols in EC2
11.4 How to Launch an EC2 Linux Instance and Connect to It
11.5 How to Use S3 in Java
11.6 How to Manage SQS Services in C#
11.7 How to Install the Simple Notification Service on Ubuntu 10.04
11.8 How to Create an EC2 Placement Group and Use MPI
11.9 How to Install Hadoop on Eclipse on a Windows System
11.10 Cloud-Based Simulation of a Distributed Trust Algorithm
11.11 A Trust Management Service
11.12 A Cloud Service for Adaptive Data Streaming
11.13 Cloud-Based Optimal FPGA Synthesis
11.14 Exercises and Problems
Literature
Glossary
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z