Unit - Ii
Unit - Ii
TECHNOLOGIES
SERVICE ORIENTED ARCHITECTURE – REST AND SYSTEMS
OF SYSTEMS – WEB SERVICES – PUBLISH SUBSCRIBE
MODEL – BASICS OF VIRTUALIZATION – TYPES OF
VIRTUALIZATION – IMPLEMENTATION LEVELS OF
VIRTUALIZATION – VIRTUALIZATION – VIRTUALIZATION
STRUTURES – TOOLS AND MECHNISMS – VIRTUALIZATION
OF CPU – MEMORY –NETWORK – I/O DEVICES – APPLICATION
– VIRTUALIZATION SUPPORT-DISASTER RECOVERY
SERVICE ORIENTED ARCHITECTURE
• A Service-Oriented Architecture or SOA is a design
pattern which is designed to build distributed systems
that deliver services to other applications through the
protocol. It is only a concept and not limited to any
programming language or platform.
• What is Service?
– A service is a well-defined, self-contained function that
represents a unit of functionality. A service can exchange
information from another service. It is not dependent on the
state of another service. It uses a loosely coupled, message-
based communication model to communicate with
applications and other services.
Service Connections
• The figure given below illustrates the service-oriented
architecture. Service consumer sends a service request to the
service provider, and the service provider sends the service
response to the service consumer. The service connection is
understandable to both the service consumer and service
provider.
Service-Oriented Terminologies
Service-Oriented Terminologies
• Services - The services are the logical entities defined by one or
more published interfaces.
• Service provider - It is a software entity that implements a
service specification.
• Service consumer - It can be called as a requestor or client that
calls a service provider. A service consumer can be another
service or an end-user application.
• Service locator - It is a service provider that acts as a registry.
It is responsible for examining service provider interfaces and
service locations.
• Service broker - It is a service provider that pass service
requests to one or more additional service providers.
SOA Architecture and Protocols
Characteristics of SOA
• It differentiates between the computer system and web services. The REST
architectural style describes the six barriers.
REST Architecture
Constraints of REST Architecture
Uniform Interface
• The Uniform Interface defines the interface between client and server. It
simplifies and decomposes the architecture which enables every part to be
developed. The Uniform Interface has four guiding principles:
– Resource-based
– Manipulation of resources by representation
– Self-Descriptive Message
– As the engine of Hypermedia Application State (HATEOAS
In addition to the above description, HATEOS also means that, where
necessary, the object or itself is contained in the linked body (or header)
to supply the URI for retrieving the related objects.
• The same interface that any REST services provide is fundamental to the
design.
• Client-server
– A client-server interface separates the client from the
server.
• Stateless
– Stateless means the state of the service doesn't persist
between subsequent requests and response.
• Layered system
– It is directly connected to the end server or by any
intermediary whether a client cannot tell. Intermediate
servers improve the system scalability by
enabling load-balancing and providing a shared
cache. Layers can enforce security policies.
• Cacheable
– On the World Wide Web, customers can cache responses.
Therefore, responses clearly define themselves as
unacceptable or prevent customers from reusing stale
or inappropriate data to further requests. Well-
managed caching eliminates some client-server interactions
to improving scalability and performance.
• Code on Demand (optional)
– The server temporarily moves or optimizes the functionality
of a client by logic that it executes. Examples of compiled
components are Java applets and client-side scripts.
REST Architecture
Characteristics of Services in Systems:
1. Modularity: Services are designed as modular, independent
components that perform specific functions.
2. Interoperability: Systems use protocols like HTTP, JSON, XML,
or gRPC to communicate and share information seamlessly.
3. Scalability: Individual services can scale independently, making
the overall system more resilient and efficient under varying
loads.
4. Reusability: A service designed for one application can often be
reused in others, saving development time and effort.
5. Loose Coupling:Components are loosely connected, which
enhances flexibility, enabling updates or changes without
impacting the entire system
REST Architecture
Types of Services:
• Data Services: Provide access to management of
databases.
• Business Services: Contain business logic or rules,
managing how specific functions are executed.
• Application Services: Integrate data and business
services, exposing functionality to users or external
systems.
• Infrastructure Services: Handle operational needs
such as monitoring, logging, and security.
REST Architecture
Example:
• A travel booking system might have:
• User Service (manages user data and
authentication).
• Payment Service (handles transactions and billing).
• Inventory Service (provides real-time availability
for hotels, flights, and cars).
• Notification Service (sends emails or messages for
booking confirmations).
HTTP methods
• Following four HTTP methods are commonly used in
REST based architecture.
– GET − Provides a read only access to a resource.
– POST − Used to create a new resource.
– DELETE − Used to remove a resource.
– PUT − Used to update a existing resource or create a new
resource.
Web Services
• A web service is a set of open protocols and
standards that allow data to be exchanged
between different applications or systems.
• Web services can be used by software
programs written in a variety of programming
languages and running on a variety of platforms
to exchange data via computer networks such
as the Internet in a similar way to inter-process
communication on a single computer.
Web Services
Functions of web services
• Is available over the Internet or private (intranet)
networks
• Uses a standardized XML messaging system
• Is not tied to any one operating system or
programming language
• Is self-describing via a common XML grammar
• Is discoverable via a simple find mechanism
Components of Web Services
• The basic web services platform is XML +
HTTP. All the standard web services work
using the following components −
– SOAP (Simple Object Access Protocol)
– UDDI (Universal Description, Discovery and
Integration)
– WSDL (Web Services Description Language)
How Does a Web Service Work?
• The client will use requests to send a sequence of web service calls to the
server hosting the actual web service.
• A web service enables communication among various applications by
using open standards such as HTML, XML, WSDL, and SOAP. A web
service takes the help of −
– XML to tag the data
– SOAP to transfer a message
– WSDL to describe the availability of service.
Example
• Consider a simple account-management and order
processing system. The accounting personnel use a
client application built with Visual Basic or JSP to
create new accounts and enter new customer orders.
• The processing logic for this system is written in Java
and resides on a Solaris machine, which also interacts
with a database to store information.
Web Services - Characteristics
• XML-Based
• Loosely Coupled
• Coarse-Grained
• Ability to be Synchronous or Asynchronous
• Supports Remote Procedure Calls(RPCs)
• Supports Document Exchange
Web Services - Architecture
44 of 42
Need for Virtualization
• Virtualization reduces the number of physical
servers, reducing the energy required to power and
cool them.
• Saves time.
47
• Hardware Virtualization
• Hardware virtualization also known as hardware-assisted virtualization or
server virtualization runs on the concept that an individual independent
segment of hardware or a physical server, may be made up of multiple
smaller hardware segments or servers, essentially consolidating multiple
physical servers into virtual servers that run on a single primary physical
server.
• Each small server can host a virtual machine, but the entire cluster of
servers is treated as a single device by any process requesting the
hardware. The hardware resource allotment is done by the hypervisor. The
main advantages include increased processing power as a result of
maximized hardware utilization and application uptime.
48
Hardware Virtualization- Subtypes:
49
• Software Virtualization
• Software Virtualization involves the creation of an operation
of multiple virtual environments on the host machine. It
creates a computer system complete with hardware that lets
the guest operating system to run. For example, it lets you run
Android OS on a host machine natively using a Microsoft
Windows OS, utilizing the same hardware as the host machine
does.
• Subtypes:
• Operating System Virtualization – hosting multiple OS on the
native OS
• Application Virtualization – hosting individual applications in
a virtual environment separate from the native OS
• Service Virtualization – hosting specific processes and
services related to a particular application
50
Desktop virtualization
• It is the concept of separating the logical desktop from the
physical machine.
• Virtual Desktop Infrastructure (VDI), can be thought of as a
more advanced form of hardware virtualization.
• Rather than interacting with a host computer directly via a
keyboard, mouse, and monitor, the user interacts with the host
computer using another desktop computer or a mobile device
by means of a network connection, such as a LAN, Wireless
LAN or even the Internet.
• In addition, the host computer in this scenario becomes a
server computer capable of hosting multiple virtual machines
at the same time for multiple users
Other Types of Virtualization
• Operating-system-level virtualization
• Application virtualization and workspace
virtualization
• Service virtualization
• Memory virtualization
• Virtual memory
• Storage virtualization
Other Types of Virtualization
2. Hardware-Level Virtualization
• Definition:
• Hardware-level virtualization abstracts physical hardware,
allowing multiple operating systems to run on a single
physical machine.
• Mechanisms:
• Full Virtualization: The hypervisor emulates hardware for
VMs (e.g., VMware ESXi, VirtualBox).
• Paravirtualization: The guest OS is modified to optimize
performance (e.g., Xen).
• Hardware-Assisted Virtualization: Uses CPU extensions
like Intel VT-x and AMD-V to improve efficiency.
Implementation Levels of Virtualization
Use Cases:
• Server consolidation
• Cloud computing environments
• Running multiple OS instances on one machine
3. Operating System-Level Virtualization
• Definition:
• Virtualization at the OS level allows multiple
isolated user-space instances (containers) to run
on a single OS kernel.
Implementation Levels of Virtualization
Mechanisms:
• Containerization: Uses lightweight containers
instead of full VMs (e.g., Docker, LXC).
• Kernel-based Virtualization: Provides isolated
user-space environments (e.g., OpenVZ).
Use Cases:
• Microservices deployment
• Cloud-native applications
• DevOps and CI/CD workflows
Implementation Levels of Virtualization
4.Library Support Virtualization Implementation Levels
a. API Emulation (Application-Level Virtualization)
• Description: Libraries emulate system calls or APIs that an
application expects from an OS.
• Example:
• Wine: Allows Windows applications to run on Linux by emulating
Windows APIs.
• CrossOver: A commercial version of Wine that enhances
compatibility.
• Use Cases:
• Running applications built for one OS on another without
modifying the OS.
Implementation Levels of Virtualization
5.Application-Level Virtualization
• Definition:
• Encapsulates applications and abstracts them
from the underlying OS, enabling portability
and isolation.
• Mechanisms:
• Application Containers: Runs applications in a
self-contained environment (e.g., Kubernetes,
Docker).
Implementation Levels of Virtualization
2. Virtualization Tools
a. Virtualization Platforms
• VMware: Offers solutions like vSphere, Workstation, and
Fusion.
• Microsoft Hyper-V: A Windows-based hypervisor.
• KVM (Kernel-based Virtual Machine): A Linux-based
virtualization tool.
• Xen: An open-source hypervisor used in cloud computing.
b. Containerization Tools
• Docker: Enables lightweight container-based virtualization.
• Kubernetes: Manages containerized applications across
clusters.
• LXC (Linux Containers): A lightweight alternative to full VM-
based virtualization
Virtualization Structures/Tools and
Mechanisms
c. Storage Virtualization
• SAN (Storage Area Network) and NAS (Network
Attached Storage) solutions.
• VMware vSAN: Provides virtualized storage for
VMs.
d. Network Virtualization
• SDN (Software-Defined Networking): Separates
control and data planes in networking.
• NFV (Network Functions Virtualization): Virtualizes
network functions like firewalls and load balancers.
Virtualization Structures/Tools and
Mechanisms
e. Cloud Virtualization Tools
• Amazon Web Services (AWS) EC2: Cloud-
based virtualization.
• Google Cloud Compute Engine: Provides
scalable VM instances.
• Microsoft Azure Virtual Machines: Offers
cloud-based VM services.
Virtualization Structures/Tools and
Mechanisms
3. Virtualization Mechanisms:
• Virtualization relies on various mechanisms to achieve
efficiency and performance:
a. Full Virtualization
• The hypervisor emulates full hardware functionality, allowing
unmodified OS installations (e.g., VMware, VirtualBox).
b. Paravirtualization
• The guest OS is modified to interact efficiently with the
hypervisor (e.g., Xen).
c. Hardware-Assisted Virtualization
• Uses CPU extensions like Intel VT-x and AMD-V to improve
performance.
Virtualization Structures/Tools and
Mechanisms
d. OS-Level Virtualization
• Virtualizes at the OS level without requiring a
separate guest OS (e.g., Docker, LXC).
e. Storage Virtualization Mechanisms
• Block-level and file-level storage abstraction.
f. Network Virtualization Mechanisms
• VLANs, VPNs, and software-defined
networking (SDN) techniques.
Virtualization of CPU, Memory, Network,
and I/O Devices
Virtualization of CPU, Memory, Network,
and I/O Devices
1. CPU Virtualization
• CPU virtualization allows multiple virtual machines (VMs) to
share a single physical processor while maintaining isolation
and performance.
• Mechanisms of CPU Virtualization
• Full Virtualization: The hypervisor emulates the entire CPU,
allowing unmodified OS installations (e.g., VMware,
VirtualBox).
• Paravirtualization: The guest OS is modified to communicate
with the hypervisor more efficiently (e.g., Xen).
• Hardware-Assisted Virtualization: Uses CPU extensions like
Intel VT-x and AMD-V to improve performance.
Virtualization of CPU, Memory, Network,
and I/O Devices
CPU Scheduling in Virtualization:
• Time-sharing: Each virtual CPU (vCPU) gets a time slice
on the physical CPU.
• Priority-based Scheduling: Critical VMs get more CPU
resources.
• Affinity Scheduling: Binds vCPUs to specific physical
CPU cores for better performance.
Advantages:
• Efficient CPU utilization.
• Improved workload isolation.
• Reduced hardware costs.
Virtualization of CPU, Memory, Network,
and I/O Devices
2. Memory Virtualization:
• Memory virtualization abstracts physical memory, allowing VMs
to access what appears to be a dedicated memory space.
Mechanisms of Memory Virtualization:
• Segmentation and Paging: Divides memory into manageable
sections.
• Memory Overcommitment: Allocates more virtual memory than
physically available, relying on swap space.
• Ballooning: Adjusts memory allocation dynamically based on VM
demand.
• Transparent Page Sharing (TPS): Deduplicates identical memory
pages to save space.
Virtualization of CPU, Memory, Network,
and I/O Devices
Memory Virtualization Challenges:
• Memory overhead due to context switching.
• Performance impact due to swapping.
• Potential security risks (e.g., memory leaks).
3. Network Virtualization:
• Network virtualization enables multiple virtual
networks to coexist on a shared physical
infrastructure, improving flexibility and scalability.
Types of Network Virtualization
• Virtual LANs (VLANs): Segregate network traffic
logically.
Virtualization of CPU, Memory, Network,
and I/O Devices
• Software-Defined Networking (SDN): Separates
network control from forwarding, enhancing
programmability.
• Network Function Virtualization (NFV): Virtualizes
network functions like firewalls and load balancers.
Advantages:
• Improved network scalability.
• Efficient traffic management.
• Enhanced security through isolation.
Virtualization of CPU, Memory, Network,
and I/O Devices
4. I/O Device Virtualization
• I/O virtualization abstracts physical input/output devices
like storage, USBs, and GPUs, allowing multiple VMs to
share them.
Mechanisms of I/O Virtualization
• Direct Device Assignment (Passthrough): A VM directly
accesses a physical device.
• Virtual I/O Devices: The hypervisor emulates devices for
VMs (e.g., VirtIO for disk and network I/O).
• I/O Multiplexing: Multiple VMs share a single physical
device through scheduling.
Virtualization of CPU, Memory, Network,
and I/O Devices
I/O Device Virtualization Challenges:
• Latency in shared I/O devices.
• Performance overhead from device emulation.
• Security risks in shared environments.
Application, Virtualization Support
Application, Virtualization Support
1. Introduction to Application Virtualization
• Application virtualization is a technology that
allows applications to run in an isolated
environment, separate from the underlying
OS, without requiring full system
virtualization. This helps in compatibility,
security, and manageability.
Application, Virtualization Support
2. Types of Application Virtualization
a. Application Isolation (Encapsulation):
• Definition: The application runs in a virtual
environment without modifying the host OS.
• Example Technologies:
• Microsoft App-V: Virtualizes Windows applications.
• Citrix XenApp: Delivers virtual apps to users on any device.
• Use Cases:
• Running multiple versions of the same application.
• Preventing conflicts between applications.
Application, Virtualization Support
b. Application Streaming:
• Definition: Applications are stored on a central server
and streamed to users on demand.
• Example Technologies:
• VMware ThinApp: Streams applications without requiring
installation.
• Microsoft RemoteApp: Runs Windows applications remotely
while displaying them locally.
• Use Cases:
• Reducing storage space on local devices.
• Enabling access to apps from multiple devices.
Application, Virtualization Support
c. Container-Based Application Virtualization:
• Definition: Applications run in lightweight, OS-
level virtualization (containers).
• Example Technologies:
• Docker: Enables application portability and isolation.
• Kubernetes: Manages and orchestrates containers.
• Use Cases:
• Cloud-native applications.
• Microservices-based architectures.
Application, Virtualization Support
d. Cloud-Based Application Virtualization:
• Definition: Applications run in the cloud and are
accessed remotely.
• Example Technologies:
• Amazon AppStream 2.0: Streams desktop applications
from AWS.
• Google Stadia (for gaming applications).
• Use Cases:
• Enabling software-as-a-service (SaaS).
• Accessing high-performance applications remotely.
Application, Virtualization Support
3. Advantages of Application Virtualization:
• ✅ Eliminates Compatibility Issues – Runs apps
on different OS versions.
✅ Enhances Security – Isolates applications
from the OS.
✅ Reduces Deployment Costs – No need to
install apps on every device.
✅ Improves Scalability – Easily scales
applications for enterprise use.
Disaster Recovery
Disaster Recovery
1. Introduction to Disaster Recovery (DR)
• Disaster Recovery (DR) refers to strategies and
processes used to restore IT infrastructure and
data after a disruptive event, such as
hardware failures, cyberattacks, or natural
disasters. In virtualized environments, DR
becomes more efficient due to the flexibility
of virtual machines (VMs) and cloud-based
replication.
Disaster Recovery
2. Key Components of Disaster Recovery in Virtualization
a. Backup and Replication
• Snapshot-based Backup: Saves the state of VMs
periodically.
• Continuous Data Replication: Ensures real-time copying
of VM data to another site.
• Incremental Backups: Only backs up changed data to
optimize storage.
b. Failover and Failback
• Failover: Switches operations to a secondary site or
cloud in case of failure.
• Failback: Restores systems to the primary site after
recovery.
Disaster Recovery
c. Disaster Recovery Sites:
• Hot Site: Fully operational backup site, ready for immediate
use.
• Warm Site: Partially equipped site requiring minor setup
before activation.
• Cold Site: Bare-minimum setup that needs full configuration
before use.
d. Automation and Orchestration
• DR Orchestration Tools: Automate failover and recovery
processes (e.g., VMware Site Recovery Manager, Veeam
Backup & Replication).
• Cloud-based DR: Uses cloud providers like AWS, Azure, or
Google Cloud for flexible recovery solutions.
Disaster Recovery
3. Disaster Recovery Strategies in Virtualized Environments
a. On-Premises DR
• Uses local infrastructure for backups and redundancy.
• Requires dedicated hardware and maintenance.
b. Cloud-based DR (Disaster Recovery as a Service - DRaaS)
• Uses cloud platforms to store VM snapshots and
configurations.
• Cost-effective and scalable (e.g., AWS Disaster Recovery,
Azure Site Recovery).
Disaster Recovery
c. Hybrid DR
• Combines on-premises and cloud-based recovery
solutions.
• Balances performance and cost.
4. Challenges in Virtualized Disaster Recovery
• Data Integrity Risks: Replicated data might become
inconsistent if not properly synchronized.
• Latency and Bandwidth Limitations: Large-scale VM
backups require high-speed networks.
• Security Risks: Remote DR sites must be protected
from unauthorized access.
• Cost Management: Cloud-based DR solutions can