CLOUD COMPUTING
Module 1 — Exam Notes
23CSPE322 | Dept of CSE
CHAPTER 1: Introduction to Cloud Computing
1. What is Cloud Computing?
• Uses the internet to connect users to cloud platforms for rented computing services.
• A central server handles communication between client devices and servers.
• Based on dynamic provisioning — compute, storage, networking supplied on demand.
• NIST Definition: On-demand network access to a shared pool of configurable resources (servers, storage,
apps, services) that can be rapidly provisioned with minimal effort.
Key Idea: "I don't care where my servers are... I just want them always available."
2. Vision of Cloud Computing
• Cloud = an internet-based way of providing computing services.
• Treats all IT resources as utilities (like water, electricity) — pay only for what you use.
• Long-term goal: open marketplace where IT services are bought/sold like utilities.
• In 1969, Leonard Kleinrock predicted computers would work like public utilities.
• Cloud service is a cloud service if: accessed via web/API, no capital investment required, pay-per-use.
3. Cloud Service Models (XaaS)
Layer Full Form What it Provides Use Case
IaaS Infrastructure-as-a- Virtual machines, storage, Scalable systems, website
Service networking on demand hosting
PaaS Platform-as-a-Service Runtime environments & Deploy apps without
middleware for app development managing hardware
SaaS Software-as-a- Ready-to-use applications over the Email, CRM, collaboration
Service Internet tools
Exam Tip: IaaS → PaaS → SaaS form the cloud computing stack from bottom to top.
4. Characteristics & Benefits
Characteristics:
• No up-front investment required
• On-demand access to computing resources
• Pay-as-you-use (flexible pricing)
• Easy application scaling and faster performance
• Efficient resource allocation
• Improved energy efficiency
• Easy integration with third-party services
Benefits (Organizations):
• Reduced IT maintenance and operational costs
• Eliminates large capital expenditure on hardware/software
• Helps start-ups launch without heavy initial investment
Benefits (End Users):
• Data and applications always available, from any device
• Services accessible through web-based interfaces
Challenges:
• Managing large-scale data centers and virtualization is complex
• Security concerns: data confidentiality and privacy
• Risk of sensitive data exposure
• Legal/regulatory issues due to data stored across different countries
5. Historical Development & Core Technologies
• Concept of renting computing services started in the 1950s with mainframe computers.
Technology Description
Distributed Systems Sharing of computing resources across multiple machines
Virtualization Multiple VMs on a single physical system
Web 2.0 Interactive, web-based applications
SOA (Service-Oriented Software offered as reusable services
Architecture)
Utility Computing Pay-as-you-use computing services
6. Milestones: Mainframes → Clusters → Grids → Cloud
System Key Feature Era
Mainframes Powerful centralized computers, large-scale data 1950s–60s
System Key Feature Era
processing
Clusters Commodity computers + high-speed networks, cost- 1980s
effective HPC
Grid Computing Distributed, heterogeneous, geographically spread Early 1990s
resources
Cloud Computing Pay-per-use, unlimited capacity, fault-tolerant, always 2000s–present
available
7. Virtualization
• Core cloud technology: abstraction of hardware, runtime, storage, networking.
• Creates multiple independent Virtual Machines (VMs) on a single physical server.
• Hardware virtualization: VMs simulate separate computers for users.
• Runtime virtualization: Process VMs (Java, .NET) for isolated app execution.
8. Web 2.0
• Primary interface for delivering cloud services.
• Enables interactive, dynamic web applications similar to desktop apps.
• Key technologies: XML (structured data), AJAX (dynamic pages), Web Services.
• Applications like Facebook and Flickr use AJAX and RSS.
• Enables Rich Internet Applications (RIAs) for cloud services.
9. Service-Oriented Computing (SOC)
• Treats services as the main building blocks for developing applications.
• Service characteristics: Loosely coupled, Reusable, Platform-independent, Location-transparent.
Two key SOC concepts:
• Quality of Service (QoS): Performance, reliability, scalability, security, availability.
• Software-as-a-Service (SaaS): Software hosted centrally, delivered on subscription/pay-per-use.
10. Utility-Oriented Computing
• Storage, compute, applications on a pay-per-use basis (like electricity/water).
• John McCarthy (1961) envisioned computing as a public utility.
• XaaS model (Everything-as-a-Service) reflects service orientation.
11. Cloud Platforms
Platform Type Key Features
AWS IaaS EC2 (virtual compute), S3 (object storage), customizable instances
Google AppEngine PaaS Scalable runtime, in-memory caching, data store, job queues
Microsoft Azure PaaS Scalable runtime, messaging, cron tasks, on-demand scaling
Apache Hadoop Processing MapReduce (Map+Reduce), large datasets on commodity hardware
[Link] / SaaS/PaaS Enterprise apps, CRM, ready-to-use components
Salesforce
Manjrasoft Aneka Platform Heterogeneous clouds, task/thread/MapReduce abstractions
CHAPTER 2: Parallel & Distributed Computing
1. Parallel vs. Distributed Computing
Aspect Parallel Computing Distributed Computing
Definition Multiple processors share the same Computation across multiple
memory heterogeneous machines
Memory Shared memory space Separate memories per node
Coupling Tightly coupled Loosely or tightly coupled
Scope Single system / cluster Wide-area networks, grids, clouds
Example SMP systems, GPU clusters Internet grids, cloud platforms
2. Flynn's Classification (Hardware Architectures)
Type Full Name Description Example
SISD Single Instruction, Sequential; one instruction on one IBM PC, Macintosh
Single Data data at a time
SIMD Single Instruction, Same instruction on multiple data Cray, Thinking
Multiple Data streams; vector ops Machines CM
MISD Multiple Instruction, Different instructions on the same Rarely built
Single Data data; rarely used commercially
MIMD Multiple Instruction, Multiple instructions on multiple Clusters, clouds, SMP
Multiple Data data; most flexible systems
Exam Tip: MIMD is the most widely used architecture in modern cloud and HPC systems.
3. MIMD Subtypes
Shared-Memory MIMD (Tightly Coupled):
• All PEs share a single global memory.
• Communication via shared memory (any write visible to all PEs).
• Easier to program but less fault-tolerant and harder to scale.
• Examples: Silicon Graphics, Sun/IBM SMP.
Distributed-Memory MIMD (Loosely Coupled):
• Each PE has its own local memory.
• Communication via message passing over an interconnection network.
• Better fault tolerance and scalability.
• Network topology: tree, mesh, cube.
• More popular today due to scalability.
4. Parallel Programming Approaches
Approach Description Best For
Data Parallelism Divide data into sets; each PE processes its own SIMD machines
set with the same instruction
Process Parallelism Single operation divided into distinct activities; MIMD machines
each runs on a separate PE
Farmer-and-Worker Master distributes jobs to slave PEs; collects Task-farm problems
results
5. Levels of Parallelism (Grain Size)
Grain Level Example
Large Grain Task Level Running multiple independent applications simultaneously
Medium Grain Control Level Parallelism in loops or function calls
Fine Grain Data Level Operations on arrays or matrices
Very Fine Grain Instruction Level Multiple instructions issued simultaneously (ILP)
Laws of Caution: Adding more processors gives diminishing returns due to communication and synchronization
overhead. Speedup is rarely linear.
6. Elements of Distributed Computing
• Distributed System: "A collection of independent computers that appears to its users as a single
coherent system." — Tanenbaum
• Communication is fundamental; processes coordinate by passing messages.
Layers of a Distributed System:
Layer Role
Hardware Layer Physical computers and network; managed by OS (IPC, scheduling, file system)
OS Layer TCP/IP, UDP — enables heterogeneous machines to work together
Middleware Layer Abstracts hardware/OS heterogeneity; provides standard protocols, formats,
frameworks
Application Layer GUIs and services using middleware (e.g., AWS VMs, cloud apps)
7. Architectural Styles for Distributed Computing
Software Architectural Styles:
Style Description Example
Data-Centered Components interact with a central data Databases, Blackboard systems
(Repository) structure
Blackboard Knowledge Sources + Blackboard + Control; AI, speech recognition
opportunistic updates
Batch Sequential Programs in order; output of one feeds Scientific computing pipelines
next
Pipe-and-Filter Filters process data streams incrementally; Unix pipes, compiler design
pipelining adds concurrency
Virtual Machine (Rule- Inference engine executes rules/predicates AI, network intrusion detection
Based)
Virtual Machine Engine interprets pseudo-programs Java, C#, Perl
(Interpreter)
Call & Return (Top- Main program invokes subprograms; tree- Traditional programs
Down) like; extends to RPC
Call & Return (OOP) Objects with encapsulated state and OOP systems
operations; better modularity
Layered System in layers; each layer provides OS, network protocols
abstraction to layer above
System Architectural Styles:
Style Description Pros Cons
Client/Server Client sends request; server Simple, well- Limited scalability for large
processes and responds. understood systems
Thin/Fat client variants.
Two-Tier Client (presentation) + Simple Limited scalability
Server (logic + data)
Three/N-Tier Separate presentation, logic, Better scalability More complex
and data tiers
Peer-to-Peer All nodes equal; act as both Decentralized, Complex management, data
(P2P) client and server; no central scalable, fault-tolerant consistency
server
P2P Examples: File sharing: Gnutella, BitTorrent, Kazaa. Communication: Skype.
8. Interprocess Communication (IPC) Models
Model How it Works Pros Cons
Shared Memory Processes read/write to common Fast, frequent data sharing Hard to scale over
memory; synchronization network
required
Message Processes send/receive Scales well, works over Overhead, message
Passing messages; synchronous or networks loss/delay
asynchronous
RPC Call remote procedure as if local; Simplifies development Network delays/failures
marshalling/unmarshalling must be handled
handled
Sockets Low-level byte-stream channels; Flexible, custom protocols Detailed handling of
implements client-server or P2P connections/errors
patterns
9. Message-Based Communication Paradigms
Paradigm Description Examples
Message Passing Components explicitly exchange data MPI, OpenMP
messages
RPC Remote procedure calls; messages carry SOAP, gRPC
procedure name + params
Distributed RPC in OOP; remote method invocation, CORBA, Java RMI, .NET Remoting
Objects object state/lifetime management
Distributed Agents Each object/agent has own thread; Autonomous/intelligent systems
messages trigger execution
Web Services RPC over HTTP; platform-independent REST, SOAP APIs
distributed apps
10. Message Communication Models
Model Description Suitable For
Point-to-Point (Direct) Sender delivers message directly to One-to-one, client-server
receiver immediately
Point-to-Point (Queue- Messages stored in queue; processed later; Asynchronous workflows
based) sender/receiver independent
Publish-Subscribe Publisher actively sends notifications to all Event-driven, notifications
(Push) subscribers
Model Description Suitable For
Publish-Subscribe (Pull) Subscribers periodically check for new Polling-based systems
messages
Request-Reply Every message expects a reply; RPC, client-server services
synchronous; sender waits for response
QUICK REVISION: Key Definitions & Facts
Term / Concept One-Line Definition
Cloud Computing Internet-based delivery of computing resources on demand, paid per use
NIST Definition On-demand, network access to shared, configurable resources with
minimal management effort
IaaS Virtualized compute/storage/networking on demand (e.g., AWS EC2, S3)
PaaS Managed runtime & middleware for application development (e.g., Google
AppEngine)
SaaS Ready-to-use applications delivered over the Internet (e.g., Salesforce)
Virtualization Creating multiple independent VMs on a single physical server
Web 2.0 Interactive web platform using XML, AJAX, and Web Services for cloud
delivery
SOC Service-Oriented Computing — treats services as primary building blocks
QoS Quality of Service — metrics like performance, reliability, scalability,
security
Utility Computing Pay-per-use IT services modeled like electricity/water utilities
MapReduce Hadoop paradigm: Map transforms data, Reduce aggregates results
Parallel Computing Multiple processors share memory to solve a task simultaneously
Distributed Computing Multiple independent machines communicate via network to solve tasks
SISD Sequential computer; one instruction, one data stream at a time
SIMD Same instruction on multiple data sets; suited for vector/matrix ops
MIMD Multiple instructions, multiple data; most flexible; used in clouds and HPC
Shared-Memory MIMD Tightly coupled; all PEs share global memory; easy to program
Distributed-Memory MIMD Loosely coupled; PEs communicate via message passing; more scalable
Middleware Software layer abstracting hardware/OS heterogeneity in distributed
systems
Blackboard Architecture Central shared data (blackboard) + knowledge sources + control
Pipe-and-Filter Data flows through filters incrementally; used in compilers, Unix pipes
Client/Server Client requests, server processes and responds; thin or fat client variants
P2P Architecture All nodes equal; act as both client and server; no central server
RPC Remote Procedure Call — call a remote function as if it were local
Publish-Subscribe Publishers emit events; subscribers receive notifications (push or pull)
Point-to-Point IPC Direct or queue-based message delivery from sender to specific receiver
Term / Concept One-Line Definition
Request-Reply IPC Every message expects a reply; synchronous communication pattern
ARPANET Early network (1969) that led to the Internet; Kleinrock predicted utility
computing
Grid Computing Geographically distributed, heterogeneous resources combined for large-
scale power
Clusters Commodity computers connected via high-speed networks; managed as a
single system
Good Luck on Your Exam! ✨