Unit 2
Unit 2
Service-Oriented Terminologies
o Services - The services are the logical entities defined by one or more
published interfaces.
o Service provider - It is a software entity that implements a service
specification.
o 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.
o Service locator - It is a service provider that acts as a registry. It is
responsible for examining service provider interfaces and service locations.
o Service broker - It is a service provider that pass service requests to one or
more additional service providers.
Characteristics of SOA
o They are loosely coupled.
o They support interoperability.
o They are location-transparent
o They are self-contained.
REST?
RE presentational State Transfer (REST) is a software architectural style that defines
the constraints to create web services.
The web services that follows the REST architectural style is called RESTful Web
Services.
o Resource-based
o Manipulation of resources by representation
o Self-Descriptive Message
o As the engine of Hypermedia Application State (HATEOAS)
2. Client-server
A client-server interface separates the client from the server. For Example, the
separation of concerns not having an internal relationship with internal storage for each
server to improve the portability of customer's data codes.
Servers are not connected with the user interface or user status to make the server
simpler and scalable. Servers and clients are independently replaced and developed
until the interface is changed.
3. Stateless
Stateless means the state of the service doesn't persist between subsequent requests
and response.
It means that the request itself contains the state required to handle the request.
The URI identifies the resource and state (or state change) of that resource in the unit.
4. Layered system
It is directly connected to the end server or by any intermediary whether a client cannot
tell.
5. 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.
Compliance with the constraints will enable any distributed hypermedia system with
desirable contingency properties such as performance, scalability, variability,
visibility, portability, and reliability.
Virtualization
Virtualization is the "creation of a virtual (rather than actual) version of something, such
as a server, a desktop, a storage device, an operating system or network resources".
It does by assigning a logical name to a physical storage and providing a pointer to that
physical resource when demanded.
Types of Virtualization:
1. Hardware Virtualization.
2. Operating system Virtualization.
3. Server Virtualization.
4. Storage Virtualization.
1) Hardware Virtualization:
When the virtual machine software or virtual machine manager (VMM) is directly
installed on the hardware system is known as hardware virtualization.
The main job of hypervisor is to control and monitoring the processor, memory and other
hardware resources.
After virtualization of hardware system we can install different operating system on it and
run different applications on those OS.
3) Server Virtualization:
When the virtual machine software or virtual machine manager (VMM) is directly
installed on the Server system is known as server virtualization.
4) Storage Virtualization:
Storage virtualization is the process of grouping the physical storage from multiple
network storage devices so that it looks like a single storage device.
Server Virtualization
Server Virtualization is the process of dividing a physical server into several virtual
servers, called virtual private servers.
The concept of Server Virtualization widely used in the IT infrastructure to minimizes the
costs by increasing the utilization of existing resources.
1. Hypervisor
In the Server Virtualization, Hypervisor plays an important role. It is a layer between
the operating system (OS) and hardware. There are two types of hypervisors.
2. Full Virtualization
Full Virtualization uses a hypervisor to directly communicate with the CPU and physical
server. It provides the best isolation and security mechanism to the virtual machines.
The biggest disadvantage of using hypervisor in full virtualization is that a hypervisor has
its own processing needs, so it can slow down the application and server performance.
3. Para Virtualization
Para Virtualization is quite similar to the Full Virtualization.
The difference between full and pare virtualization is that, in para virtualization
hypervisor does not need too much processing power to manage the OS.
It is a server virtualization technology that divides one operating system into multiple
isolated user-space called virtual environments.
The biggest advantage of using server visualization is that it reduces the use of physical
space, so it will save money.
6. Kernel-Level Virtualization
Kernel-level virtualization is one of the most important types of server virtualization.
The advantage of using kernel virtualization is that it does not require any special
administrative software and has very less overhead.
User Mode Linux (UML) and Kernel-based virtual machine are some examples of
kernel virtualization.
Independent Restart
Low Cost
Disaster Recovery
Faster deployment of resources
Security
Hypervisor
A hypervisor is a form of virtualization software used in Cloud hosting to divide
and allocate the resources on various pieces of hardware.
The program which provides partitioning, isolation, or abstraction is called a
virtualization hypervisor.
The hypervisor is a hardware virtualization technique that allows multiple guest
operating systems (OS) to run on a single host system at the same time.
A hypervisor is sometimes also called a virtual machine manager(VMM).
Types of Hypervisor
TYPE-1 Hypervisor:
The hypervisor runs directly on the underlying host system.
It is also known as a “Native Hypervisor” or “Bare metal hypervisor”.
It does not require any base server operating system.
It has direct access to hardware resources.
Examples of Type 1 hypervisors include VMware ESXi, Citrix XenServer, and
Microsoft Hyper-V hypervisor.
TYPE-2 Hypervisor:
A Host operating system runs on the underlying host system.
It is also known as ‘Hosted Hypervisor”.
Such kind of hypervisors doesn’t run directly over the underlying hardware
rather they run as an application in a Host system(physical machine).
Basically, the software is installed on an operating system.
Benefits of hypervisors
Speed
Efficiency
Flexibility
Portability
Memory Virtualization
Pub/Sub Architecture
The Pub/Sub (Publisher/Subscriber) model is a messaging pattern used in
software architecture to facilitate asynchronous communication between different
components or systems.
The Publisher is responsible for creating and sending messages to the Pub/Sub
system. Publishers categorize messages into topics or channels based on their
content. They do not need to know the identity of the subscribers.
2. Subscriber
3. Topic
4. Message Broker
5. Message
6. Subscription
Step: 1 – Publishers create and send messages to the Pub/Sub system. They
categorize messages into topics or channels based on their content.
Step: 2 – Subscribers express interest in receiving messages from specific
topics. They receive messages from topics to which they are subscribed.
Step: 3 – Topics are named channels to which messages are published.
Publishers send messages to specific topics, and subscribers can subscribe
to one or more topics to receive messages of interest.
Step: 4 – Message brokers are intermediaries that manage the routing of
messages between publishers and subscribers. They receive messages from
publishers and forward them to subscribers based on their subscriptions.
Step: 5 – When a publisher sends a message to a topic, the message broker
receives the message and forwards it to all subscribers that are subscribed
to that topic.
Step: 6 – Pub/Sub allows for asynchronous communication between
publishers and subscribers. Publishers can send messages without waiting
for subscribers to receive them, and subscribers can receive messages
without the need for publishers to be active.