CC Unit1
CC Unit1
General view of cloud computing: I don’t care where my servers are, who
manages them, where my documents are stored, or where my applications are
hosted. I just want them always available and access them from any device
connected through Internet. And I am willing to pay for this service for as a
long as I need it.
Public Cloud:
o Definition: Public clouds utilize the internet to offer resources
such as applications and storage to the general public or
businesses on a pay-per-usage basis.
o Examples: Amazon Elastic Compute Cloud (EC2), IBM’s Blue Cloud,
Sun Cloud, Google AppEngine, Windows Azure Services Platform.
o Benefits:
Economies of scale.
Inexpensive setup as hardware, application, and bandwidth
costs are covered by the provider.
Pay-per-usage model.
o Limitations:
Limited configuration options.
Security concerns, especially for sensitive data subject to
compliance regulations.
Private Cloud:
o Definition: Data center architectures owned by a single company,
providing flexibility, scalability, provisioning, automation, and
monitoring, with the aim of retaining control over infrastructure.
o Usage: Typically used by large enterprises due to concerns around
security, compliance, and control.
o Benefits:
Control over infrastructure.
Security and compliance adherence.
o Challenges:
Expense, with typically modest economies of scale.
Not feasible for small-to-medium-sized businesses.
Hybrid Cloud:
o Definition: Hybrid clouds combine elements of public and private
clouds, allowing companies to maintain control over certain
aspects while utilizing public cloud resources as needed.
o Use Cases:
Cloud bursting: During peak periods, applications or parts of
applications can be migrated to the public cloud.
Disaster Recovery (DR)/Business Continuity (BC):
Organizations can utilize cloud-based DR/BC services for
cost-effective failover solutions.
o Benefits:
Flexibility to scale resources as needed.
Cost-effective disaster recovery solutions.
o Considerations:
Data transfer costs between private and public clouds.
Integration and management complexities.
Cloud Service Provider
Windows Azure:
Amazon EC2:
No up-front commitments
On-demand access
Nice pricing
Simplified application acceleration and scalability
Efficient resource allocation
Energy efficiency
Seamless creation and use of third-party services
Large enterprises can offload some of their activities to cloud-based
systems.
Small enterprises and start-ups can afford to translate their ideas into
business results more quickly, without excessive up-front costs
System developers can concentrate on the business logic rather than
dealing with the complexity of infrastructure management and
scalability
End users can have their documents accessible from everywhere and
any device.
1. Practical Aspects:
o Configuration, networking, and sizing of cloud computing systems
pose practical challenges.
o Dynamic provisioning of cloud computing services and resources
requires efficient management.
2. Technical Challenges:
o Cloud service providers face technical challenges in managing
large computing infrastructures.
o Utilizing virtualization technologies atop these infrastructures
adds complexity.
3. Security Concerns:
o Ensuring confidentiality, secrecy, and protection of data in a cloud
environment is a critical security challenge.
o Safeguarding data against unauthorized access and breaches
remains a priority.
4. Legal Issues:
o Legal considerations may arise concerning data ownership,
privacy, and compliance with regulatory frameworks.
o Addressing jurisdictional issues and ensuring compliance with laws
across different regions is crucial.
Definition:
o Processing multiple tasks simultaneously on multiple processors.
Parallel Program:
o Consists of multiple active processes (tasks) simultaneously
solving a given problem.
Task Division:
o Divide-and-conquer technique divides a task into multiple
subtasks, processed on different CPUs.
Parallel Programming:
o Programming on a multi-processor system using the divide-and-
conquer technique.
Need for Parallel Processing:
o Many applications require more computing power than traditional
sequential computers can offer.
Cost-Effective Solution:
o Increases the number of CPUs and adds efficient communication
between them, resulting in higher computing power and
performance.
Computational Requirements:
o Ever-increasing demand for computing power.
Limitations of Sequential Architectures:
o Sequential CPUs reaching mechanical and physical limitations.
Saturation of Sequential CPU Speed:
o Sequential CPU speed reaching saturation.
Hardware Improvements:
o Non-scalable improvements in pipelining, super scalar, etc.,
requiring sophisticated compiler technology.
Maturity of Parallel Processing Technology:
o Mature technology ready for commercial exploitation.
Advancements in Networking Technology:
o Significant development in networking technology enabling
heterogeneous computing.
Categories:
o Single-instruction, Single-data (SISD) systems
o Single-instruction, Multiple-data (SIMD) systems
o Multiple-instruction, Single-data (MISD) systems
o Multiple-instruction, Multiple-data (MIMD) systems
Description:
o All processing elements (PEs) connected to a single global memory
with shared access.
o Also known as tightly coupled multiprocessor systems.
Communication:
o Communication between PEs occurs through the shared memory.
Data Modification:
o Modification of data by one PE in the global memory is visible to
all other PEs.
Examples:
o Dominant representative shared memory MIMD systems include
Silicon Graphics machines and Sun/IBM SMP (Symmetric Multi-
Processing).
Description:
o Each PE has its own local memory.
o Also referred to as loosely coupled multiprocessor systems.
Communication:
o Communication between PEs occurs through the interconnection
network, inter-process communication channel, or IPC.
Network Configuration:
o Network connecting PEs can be configured into various topologies
like tree, mesh, cube, etc.
Operation:
o Each PE operates asynchronously.
o Communication/synchronization among tasks is facilitated by
exchanging messages between PEs.
1. Hardware:
o The physical infrastructure of the distributed system, including
servers, network switches, routers, and other networking
equipment.
o Hardware components provide the underlying computing
resources and connectivity necessary for the system to function.
2. Operating System:
o The software layer that manages hardware resources and
provides services to applications.
o In a distributed system, the operating system may need to support
distributed computing features such as process management,
communication, synchronization, and resource allocation across
multiple nodes.
3. Middleware:
o Middleware acts as a bridge between the operating system and
the application layer.
o It provides services and abstractions that simplify the
development of distributed applications, such as communication
protocols, distributed object management, transaction support,
and security mechanisms.
o Examples of middleware include message brokers, distributed
databases, remote procedure call (RPC) frameworks, and publish-
subscribe systems.
4. Application Layer:
o The top layer of the distributed system, where user-facing
applications and services reside.
o Distributed applications are built on top of the middleware layer
and interact with it to access distributed resources, exchange
data, and coordinate activities across multiple nodes.
o Examples of distributed applications include web services, online
social networks, cloud-based storage systems, and collaborative
editing platforms.
Banking systems
Communication - email
Distributed information systems
o WWW
o Federated Databases
Manufacturing and process control
Inventory systems
General purpose (university, office automation)
o Definition:
System architectural styles encompass the physical
organization of components and processes across a
distributed infrastructure.
o Reference Styles:
System architectural styles include two fundamental
reference styles:
a. Client/Server:
Key Concepts:
1. Service:
A service encapsulates a software component that provides
a set of coherent and related functionalities. These
functionalities can be reused and integrated into larger
applications.
2. Heterogeneity and Extensibility:
Distributed systems are meant to be heterogeneous,
extensible, and dynamic. Services are the most popular
abstraction for designing complex and interoperable
systems in such environments.
Roles in SOA:
o Service Provider:
The service provider is responsible for maintaining the
service and making it available for others to use.
Providers advertise services by publishing them in a registry,
along with a service contract specifying the nature of the
service, how to use it, requirements, and fees.
Features of SOA:
4. Standardized Service Contract:
Services adhere to a standardized contract specifying their
functionality, interfaces, and usage.
5. Loose Coupling:
Services are loosely coupled, allowing them to evolve
independently without affecting other services.
6. Abstraction:
Services hide implementation details, providing a high-level
abstraction of functionality.
7. Reusability:
Services can be reused across multiple applications,
reducing development effort and promoting consistency.
8. Lack of State:
Services are stateless, meaning they do not maintain client
state between interactions.
9. Discoverability:
Services can be discovered and invoked dynamically,
allowing clients to locate and use services as needed.
10.Interoperability:
Services can interact and collaborate seamlessly, even if
they are implemented using different technologies or
platforms.
Virtualization:
a. Execution Virtualization:
b. Storage Virtualization:
c. Network Virtualization:
b. System-Level Virtualization:
Hierarchy of Abstraction:
Importance:
1. Components:
o Host: Represents the physical computer hardware on which
virtualization is implemented.
o Virtual Machine Manager (Hypervisor): A program or
software/hardware combination responsible for abstracting the
underlying physical hardware and managing virtual machines.
o Virtual Machine: Represents the emulation of a guest operating
system running on top of the hypervisor.
o Guest: Refers to the operating system installed within a virtual
machine, which interacts with the virtualized hardware.
2. Types of Hypervisors:
o Type I Hypervisor (Native): Operates directly on hardware
without the need for a host operating system. It interacts directly
with the hardware's Instruction Set Architecture (ISA) interface.
Also known as bare-metal hypervisors.
o Type II Hypervisor (Hosted): Requires the support of an operating
system to provide virtualization services. It interacts with the host
operating system through the Application Binary Interface (ABI)
and emulates virtual hardware for guest operating systems.
3. Virtual Machine Manager Internals:
o The VMM is internally organized into modules:
Dispatcher: Routes instructions issued by the virtual
machine instance to other modules.
Allocator: Determines system resources allocated to virtual
machines.
Interpreter: Executes interpreter routines triggered when a
virtual machine executes privileged instructions.
4. Goldberg-Popek Criteria:
o To efficiently support virtualization, the VMM must satisfy three
properties:
Equivalence: The behavior of a guest under the control of
the VMM should match its behavior when executed directly
on physical hardware.
Resource Control: The VMM should have complete control
over virtualized resources.
Efficiency: A significant majority of machine instructions
should be executed without intervention from the VMM for
optimal performance.
1. Hardware-Assisted Virtualization:
o Description: Hardware-assisted virtualization involves
architectural support provided by the hardware for running a
virtual machine manager (VMM) capable of isolating and running
guest operating systems.
o Examples: Intel VT (Vanderpool) and AMD V (Pacifica) are
extensions to the x86-64 bit architecture that enable hardware-
assisted virtualization.
o Advantages: It enables efficient and secure execution of guest
operating systems with minimal overhead.
2. Full Virtualization:
o Description: Full virtualization allows running a program, typically
an operating system, directly on a virtual machine without any
modifications, mimicking its execution on raw hardware. The
VMM provides complete emulation of underlying hardware.
o Advantages: Provides complete isolation, leading to enhanced
security, ease of emulation of different architectures, and
coexistence of different systems on the same platform.
3. Paravirtualization:
o Description: Paravirtualization exposes a slightly modified
software interface to the virtual machine, requiring modifications
to the guest operating system. It allows demanding performance-
critical operations to be executed directly on the host.
o Usage: Commonly explored in open-source and academic
environments.
o Advantages: Prevents performance losses experienced in
managed execution by enabling direct execution of critical
operations on the host.
4. Partial Virtualization:
o Description: Partial virtualization provides partial emulation of
underlying hardware, not allowing complete execution of the
guest operating system in isolation. It may support many
applications transparently but might lack support for all operating
system features.
o Example: Address space virtualization used in time-sharing
systems is an example of partial virtualization.
o Usage: Used when complete isolation of guest operating systems
is not necessary or feasible.
Introduction:
Architecture:
Internet of Services:
AJAX
AJAX:
Mashups: