0% found this document useful (0 votes)
18 views

Unit 2

The document discusses Service Oriented Architecture (SOA), describing it as an architectural design involving collection of services that communicate with each other. It discusses why SOA is used, its features, advantages, disadvantages, and categories of services in SOA.

Uploaded by

advikrawat1602
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views

Unit 2

The document discusses Service Oriented Architecture (SOA), describing it as an architectural design involving collection of services that communicate with each other. It discusses why SOA is used, its features, advantages, disadvantages, and categories of services in SOA.

Uploaded by

advikrawat1602
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 36

Service Oriented Architecture (SOA)?

The Service Oriented Architecture is an architectural design which includes collection of


services in a network which communicate with each other. The complication of each service is
not noticeable to other service.
The service is a kind of operation which is well defined, self contained that provides
separate functionality such as checking customer account details, printing bank statements etc
and does not depend on the sate of other services.

Why to use SOA?

 SOA is widely used in market which responds quickly and makes effective changes
according to market situations.
 The SOA keep secret the implementation details of the subsystems.
 It allows interaction of new channels with customers, partners and suppliers.
 It authorizes the companies to select software or hardware of their choice as it acts as
platform independence.

Features

 SOA uses interfaces which solves the difficult integration problems in large systems.
 SOA communicates customers, providers and suppliers with messages by using the
XML schema.
 It uses the message monitoring to improve the performance measurement and detects
the security attacks.
 As it reuses the service, there will be lower software development and management
costs.

Advantages

 SOA allows reuse the service of an existing system alternately building the new system.
 It allows plugging in new services or upgrading existing services to place the new
business requirements.
 It can enhance the performance, functionality of a service and easily makes the system
upgrade.
 SOA has capability to adjust or modify the different external environments and large
applications can be managed easily.
 The companies can develop applications without replacing the existing applications.
 It provides reliable applications in which you can test and debug the independent
services easily as compared to large number of code.

Disadvantages
 SOA requires high investment cost (means large investment on technology,
development and human resource).
 There is greater overhead when a service interacts with another service which
increases the response time and machine load while validating the input parameters.
 SOA is not suitable for GUI (graphical user interface) applications which will become
more complex when the SOA requires the heavy data exchange.

SOA - Service Categories

The service is a kind of operation which is well defined, self contained that performs a specific
task.
The following figure shows SOA service categories:

The service can be categorized into following ways:

Entity Service

The entity services include entities of customer such as purchase order, insurance policy,
invoice of order, ordered date etc in which you can perform CRUD operations such as Create,
Read, Delete and Update on the entities. These services provide information of the business
process stored in the databases and handle the business entities.

Task Service

The task service adds the business logic to other services and due to its focus on business
entity, it contains low amount of reusability. Task services provide operations on more than one
entity such as customer purchase order, creating purchase order number, validating customer
details etc.
A service is called as task service when it needs to access the multiple entities.

Utility Service

The utility services are technology oriented services which are used to build larger and higher
level services and provides other capabilities which are unrelated to the message transfer. The
utility services provide reusable functions such as event logging, creating unique number and
notification etc to the other functional domains. These services contain small, closely packed
services which are used as building blocks in service oriented system.

Proxy Service

The proxy services contain the services which act as connection between members of the
service oriented system and conflict subsystem. The device and process services lie under this
type of services. Sometimes services which are defined under proxy services are called as
gateway services.

Device Service

The device service is a kind of proxy service which is referred as hardware device and used to
communicate between other services. The device service does not include the API which is not
well suited with the service oriented system.

Process Service

The device service is also a kind of proxy service which acts as interpreter between application
and service oriented system members. This service creates and arranges the application
services to implement the business processes.

Business Service

Business services are also known as controller service which provides business functions for
the completion of the business process and are flexible services that changes the business
needs. These services develop the business applications that automate the business process
such as managing the customer service, shipping the customer product etc.
REST (REpresentational State Transfer)

REST (REpresentational State Transfer) is an architectural style for developing web services.
REST is popular due to its simplicity and the fact that it builds upon existing systems and
features of the internet's HTTP in order to achieve its objectives, as opposed to creating new
standards, frameworks and technologies.

What is REST architecture?


REST stands for REpresentational State Transfer. REST is web standards based architecture
and uses HTTP Protocol. It revolves around resource where every component is a resource
and a resource is accessed by a common interface using HTTP standard methods. REST was
first introduced by Roy Fielding in 2000.
In REST architecture, a REST Server simply provides access to resources and REST client
accesses and modifies the resources. Here each resource is identified by URIs/ global IDs.
REST uses various representations to represent a resource like text, JSON, XML. JSON is the
most popular one..

Introduction to RESTFul web services

A web service is a collection of open protocols and standards used for exchanging data
between applications or systems. Software applications written in various programming
languages and running on various platforms can use web services to exchange data over
computer networks like the Internet in a manner similar to inter-process communication on a
single computer. This interoperability (e.g., between Java and Python, or Windows and Linux
applications) is due to the use of open standards.
Web services based on REST Architecture are known as Restful web services. These web
services use HTTP methods to implement the concept of REST architecture. A Restful web
service usually defines a URI, Uniform Resource Identifier a service, provides resource
representation such as JSON and set of HTTP Methods.

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 an existing resource or create a new resource.
(The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed,
collaborative, hypermedia information systems. It is a generic, stateless, protocol which
can be used for many tasks beyond its use for hypertext, such as name servers and
distributed object management systems, through extension of its request methods,
error codes and headers. A feature of HTTP is the typing and negotiation of data
representation, allowing systems to be built independently of the data being
transferred.)

RESTFul Web Services - Resources

What is a Resource?

REST architecture treats every content as a resource. These resources can be Text Files, Html
Pages, Images, Videos or Dynamic Business Data. REST Server simply provides access to
resources and REST client accesses and modifies the resources. Here each resource is
identified by URIs/ Global IDs. REST uses various representations to represent a resource
where Text, JSON, XML. The most popular representations of resources are XML and JSON.

Representation of Resources
A resource in REST is a similar Object in Object Oriented Programming or is like an Entity in a
Database. Once a resource is identified then its representation is to be decided using a
standard format so that the server can send the resource in the above said format and client
can understand the same format.
For example, in RESTful Web Services - a user is a resource which is represented using the
following XML format −

<user>
<id>1</id>
<name>Mahesh</name>
<profession>Teacher</profession>
</user>
The same resource can be represented in JSON format as follows −

{
"id":1,
"name":"Mahesh",
"profession":"Teacher"
}

Good Resources Representation

REST does not impose any restriction on the format of a resource representation. A client can
ask for JSON representation whereas another client may ask for XML representation of the
same resource to the server and so on. It is the responsibility of the REST server to pass the
client the resource in the format that the client understands.
Following are some important points to be considered while designing a representation format
of a resource in RESTful Web Services.
 Understandability − Both the Server and the Client should be able to understand and
utilize the representation format of the resource.
 Completeness − Format should be able to represent a resource completely. For
example, a resource can contain another resource. Format should be able to represent
simple as well as complex structures of resources.
 Linkablity − A resource can have a linkage to another resource; a format should be
able to handle such situations.
However, at present most of the web services are representing resources using either XML or
JSON format. There are plenty of libraries and tools available to understand, parse, and modify
XML and JSON data.

RESTful Web Services - Messages


RESTful Web Services make use of HTTP protocols as a medium of communication between
client and server. A client sends a message in form of a HTTP Request and the server
responds in the form of an HTTP Response. This technique is termed as Messaging. These
messages contain message data and metadata i.e. information about message itself. Let us
have a look on the HTTP Request and HTTP Response messages for HTTP 1.1.
HTTP Request

An HTTP Request has five major parts −


 Verb − Indicates the HTTP methods such as GET, POST, DELETE, PUT, etc.
 URI − Uniform Resource Identifier (URI) to identify the resource on the server.
 HTTP Version − Indicates the HTTP version. For example, HTTP v1.1.
 Request Header − Contains metadata for the HTTP Request message as key-value
pairs. For example, client (or browser) type, format supported by the client, format of
the message body, cache settings, etc.
 Request Body − Message content or Resource representation.
(HTTP has been in use by the World-Wide Web global information initiative
since 1990. This specification defines the protocol referred to as "HTTP/1.1")

HTTP Response

An HTTP Response has four major parts −


 Status/Response Code − Indicates the Server status for the requested resource. For
example, 404 means resource not found and 200 means response is ok.
 HTTP Version − Indicates the HTTP version. For example HTTP v1.1.
 Response Header − Contains metadata for the HTTP Response message as keyvalue
pairs. For example, content length, content type, response date, server type, etc.
 Response Body − Response message content or Resource representation.

RESTful Web Services - Addressing


Addressing refers to locating a resource or multiple resources lying on the server. It is
analogous to locate a postal address of a person.
Each resource in REST architecture is identified by its URI (Uniform Resource Identifier). A
URI is of the following format −
<protocol>://<service-name>/<ResourceType>/<ResourceID>
Purpose of an URI is to locate a resource(s) on the server hosting the web service. Another
important attribute of a request is VERB which identifies the operation to be performed on the
resource.

Constructing a Standard URI

The following are important points to be considered while designing a URI −


 Use Plural Noun − Use plural noun to define resources. For example, we've used users
to identify users as a resource.
 Avoid using spaces − Use underscore (_) or hyphen (-) when using a long resource
name. For example, use authorized_users instead of authorized%20users.
 Use lowercase letters − Although URI is case-insensitive, it is a good practice to keep
the url in lower case letters only.
 Maintain Backward Compatibility − As Web Service is a public service, a URI once
made public should always be available. In case, URI gets updated, redirect the older
URI to a new URI using the HTTP Status code, 300.
 Use HTTP Verb − Always use HTTP Verb like GET, PUT and DELETE to do the
operations on the resource. It is not good to use operations name in the URI.

RESTful Web Services - Security


As RESTful Web Services work with HTTP URL Paths, it is very important to safeguard a
RESTful Web Service in the same manner as a website is secured.
Following are the best practices to be adhered to while designing a RESTful Web Service −
 Validation − Validate all inputs on the server. Protect your server against SQL or
NoSQL injection attacks.
 Session Based Authentication − Use session based authentication to authenticate a
user whenever a request is made to a Web Service method.
 No Sensitive Data in the URL − Never use username, password or session token in a
URL, these values should be passed to Web Service via the POST method.
 Restriction on Method Execution − Allow restricted use of methods like GET, POST
and DELETE methods. The GET method should not be able to delete data.
 Validate Malformed XML/JSON − Check for well-formed input passed to a web service
method.
 Throw generic Error Messages − A web service method should use HTTP error
messages like 403 to show access forbidden, etc.

What is Web Service

A Web Service is can be defined by following ways:

 It is a client-server application or application component for communication.


 The method of communication between two devices over the network.
 It is a software system for the interoperable machine to machine communication.
 It is a collection of standards or protocols for exchanging information between two
devices or application.

Let's understand it by the figure given below:

As you can see in the figure, Java, .net, and PHP applications can communicate with other
applications through web service over the network. For example, the Java application can
interact with Java, .Net, and PHP applications. So web service is a language independent way
of communication.

Types of Web Services

There are mainly two types of web services.


1. SOAP web services.
2. RESTful web services.

SOAP (Simple Object Access Protocol) is a messaging protocol specification for exchanging
structured information in the implementation of web services in computer networks. Its purpose
is to provide extensibility, neutrality, verbosity and independence. It uses XML Information
Set for its message format, and relies on application layer protocols, most often Hypertext
Transfer Protocol (HTTP).

RESTful Web Services are basically REST Architecture based Web Services. In REST
Architecture everything is a resource. RESTful web services are light weight, highly scalable
and maintainable and are very commonly used to create APIs for web-based applications.

Web Service Features

XML-Based

Web services use XML at data description and data transportation layers. Using XML exclude
any networking, operating system, or platform binding. Web services-based operation is
extremely interoperable at their core level.

Loosely Coupled

A client of a web service is not fixed to the web service directly. The web service interface can
support innovation over time without negotiating the client's ability to communicate with the
service.
A tightly coupled system means that the client and server logic are closely tied to one another,
indicating that if one interface changes, then another must be updated.

Accepting a loosely coupled architecture tends to make software systems more manageable
and allows more straightforward integration between various systems.

Coarse-Grained

Object-oriented technologies such as Java expose their functions through individual methods. A
specific process is too fine an operation to provide any suitable capability at a corporate level.
Building a Java program from scratch needed the creation of various fine-grained functions that
are then collected into a coarse-grained role that is consumed by either a client or another
service.

Businesses and the interfaces that they prove should be coarse-grained. Web services
technology implement a natural method of defining coarse-grained services that approach the
right amount of business logic.

Ability to be Synchronous or Asynchronous

Synchronicity specifies the binding of the client to the execution of the function. In synchronous
invocations, the client blocks and delays in completing its service before continuing.
Asynchronous operations grant a client to invoke a task and then execute other functions.

Asynchronous clients fetch their result at a later point in time, while synchronous clients receive
their effect when the service has completed. Asynchronous capability is an essential method in
enabling loosely coupled systems.

Supports Remote Procedure Calls (RPCs)

Web services allow consumers to invoke procedures, functions, and methods on remote objects
using an XML-based protocol. Remote systems expose input and output framework that a web
service must support.

Component development through Enterprise JavaBeans (EJBs) and .NET Components has
more become a part of architectures and enterprise deployments over a previous couple of
years. Both technologies are assigned and accessible through a variety of RPC mechanisms.

A web function supports RPC by providing services of its own, equivalent to those of a
traditional role, or by translating incoming invocations into an invocation of an EJB or a .NET
component.

Features of web Services

o Web services are designed for application to application interaction.


o It should be interoperable.
o It should allow communication over the network.
Components of Web Services

The web services must be able to fulfill the following conditions:

o The web service must be accessible over the internet.


o The web service is discoverable through a common mechanism like UDDI.
o It must be interoperable over any programming language or Operating System.

(UDDI-The Universal Description, Discovery and Integration (UDDI) specifications define


a registry service for Web services and for other electronic and non-electronic services.
A UDDI registry service is a Web service that manages information about service
providers, service implementations, and service metadata. Service providers can use
UDDI to advertise the services they offer. Service consumers can use UDDI to discover
services that suit their requirements and to obtain the service metadata needed to
consume those services.)

Uses of Web Services

o Web services are used for reusing the code and connecting the existing program.
o Web services can be used to link data between two different platforms.
o It provides interoperability between disparate applications.

How does data exchange between applications?

Suppose, we have an Application A which create a request to access the web services. The
web services offer a list of services. The web service process the request and sends
the response to the Application A. The input to a web service is called a request, and the output
from a web service is called response. The web services can be called from different platforms.

There are two popular formats for request and response XML and JSON.
XML Format: XML is the popular form as request and response in web services. Consider the
following XML code:

1. <getDetail>
2. <id>DataStructureCourse</id>
3. </getDetail>

The code shows that user has requested to access the DataStrutureCourse. The other data
exchange format is JSON. JSON is supported by wide variety of platform.

JSON Format: JSON is a readable format for structuring data. It is used for transiting data
between server and web application.

1. [
2. "employee":
3. {
4. "id": 00987
5. "name": "Jack",
6. "salary": 20000,
7. }
8. ]

To make a web service platform-independent, we make the request and response platform-
independent.

Now a question arises, how does the Application A know the format of Request and
Response?

The answer to this question is "Service Definition." Every web service offers a service definition.
Service definition specifies the following:

o Request/ Response format: Defines the request format made by consumer and
response format made by web service.
o Request Structure: Defines the structure of the request made by the application.
o Response Structure: Defines the structure of response returned by the web service.
o Endpoint: Defines where the services are available.

Key Terminology of Web Services

o Request and Response


o Message Exchange Format: XML and JSON
o Service Provider or Server
o Service Consumer or Client
o Service Definition
o Transport: HTTP and MQ

Request and Response: Request is the input to a web service, and the response is the output
from a web service.

Message Exchange Format: It is the format of the request and response. There are two
popular message exchange formats: XML and JSON.

Service Provider or Server: Service provider is one which hosts the web service.

Service Consumer or Client: Service consumer is one who is using the web service.

Service Definition: Service definition is the contract between the service provider and service
consumer. Service definition defines the format of request and response, request structure,
response structure, and endpoint.

Transport: Transport defines how a service is called. There is two popular way of calling a
service: HTTP and Message Queue (MQ). By tying the URL of service, we can call the service
over the internet. MQ communicates over the queue. The service requester puts the request in
the queue. As soon as the service provider listens to the request. It takes the request, process
the request, and create a response, and put the response back into MQ. The service requester
gets the response from the queue. The communication happens over the queue.

Characteristics of Web Services


Web services have the following characteristics:
o XML-based
o Coarse-grained
o Loosely coupled
o Capability to be synchronous and asynchronous
o Supports RPC
XML-based
A web service uses XML at information representation and record transportation layer. Using
XML, there is no need of networking, operating system, or platform binding. Web offering
based application is highly interoperable application at their middle level.
Coarse-grained
In the coarse-grained operation, a few objects hold a lot of related data. It provides broader
functionality in comparison to fine-grained service. It wraps one or more fine-grained services
together into a coarse-grained service. It is fine to have more coarse-grained service
operations.
Loosely Coupled
A web service supports loosely coupled connections between systems. It communicates by
passing XML message to each other via a web API. Web API adds a layer of abstraction to the
environment that makes the connection adaptable and flexible.
Capability to be synchronous and asynchronous
Synchronous Web services are invoked over existing Web protocols by a client who waits for a
response. Synchronous Web services are served by RPC-oriented messaging.
Asynchronous Web services are invoked over existing Web protocols by a client who does not
wait for a response. The document-oriented messaging often used for asynchronous Web
services. Asynchronous Web Service is a crucial factor in enabling loosely coupled system.
Servlets, HTTP, and XML/SOAP are used to implement synchronous or asynchronous
endpoints.
Supports RPC
A web service supports RPC through offering services of its personal, equivalent to those of a
traditional aspect.
o A web service is a web resource. We can access a web service using platform-
independent and language-neutral web protocols, such as HTTP. HTTP ensures easy
integration of heterogeneous environment.
o A web service is typically registered. It can be located through a web service registry. A
registry enables service consumers to find service that matches their needs. The
service consumers may be human or other application.
o A web service provides an interface (a web API) that can be called from another
program. The application-to-application programming can be invoked from any
application.
Web Service Components

There are three major web service components.

1. SOAP
2. WSDL
3. UDDI

SOAP:

SOAP (Simple Object Access Protocol) is a messaging protocol specification for exchanging
structured information in the implementation of web services in computer networks. Its purpose is to
provide extensibility, neutrality, verbosity and independence.

SOAP is a XML-based protocol for accessing web services.

SOAP is a W3C recommendation for communication between applications.

SOAP is XML based, so it is platform independent and language independent. In other words, it
can be used with Java, .Net or PHP language on any platform.

WSDL

WSDL is an acronym for Web Services Description Language.

WSDL is a xml document containing information about web services such as method name,
method parameter and how to access it.

WSDL is a part of UDDI. It acts as a interface between web service applications

SOAP Web Services

SOAP stands for Simple Object Access Protocol. It is a XML-based protocol for accessing web
services.

SOAP is a W3C recommendation for communication between two applications.

SOAP is XML based protocol. It is platform independent and language independent. By using
SOAP, you will be able to interact with other programming language applications.
Advantages of Soap Web Services

WS Security: SOAP defines its own security known as WS Security.

Language and Platform independent: SOAP web services can be written in any programming
language and executed in any platform.

Disadvantages of Soap Web Services

Slow: SOAP uses XML format that must be parsed to be read. It defines many standards that
must be followed while developing the SOAP applications. So it is slow and consumes more
bandwidth and resource.

WSDL dependent: SOAP uses WSDL and doesn't have any other mechanism to discover the
service.

RESTful Web Services

REST stands for REpresentational State Transfer.

REST is an architectural style not a protocol.

Advantages of RESTful Web Services

Fast: RESTful Web Services are fast because there is no strict specification like SOAP. It
consumes less bandwidth and resource.

Language and Platform independent: RESTful web services can be written in any
programming language and executed in any platform.

Can use SOAP: RESTful web services can use SOAP web services as the implementation.

Permits different data format: RESTful web service permits different data format such as
Plain Text, HTML, XML and JSON.

SOAP vs REST Web Services

There are many differences between SOAP and REST web services.
o. SOAP REST

11 SOAP is a protocol. REST is an architectural style.

22 SOAP stands for Simple Object Access REST stands for REpresentational State Transfer.
Protocol.

33 SOAP can't use REST because it is a REST can use SOAP web services because it is a concept and ca
protocol. use any protocol like HTTP, SOAP.

44 SOAP uses services interfaces to expose REST uses URI to expose business logic.
the business logic.

55 JAX-WS is the java API for SOAP web JAX-RS is the java API for RESTful web services.
services.

66 SOAP defines standards to be strictly REST does not define too much standards like SOAP.
followed.

77 SOAP requires more bandwidth and REST requires less bandwidth and resource than SOAP.
resource than REST.

88 SOAP defines its own security. RESTful web services inherits security measures from the
underlying transport.

99 SOAP permits XML data format only. REST permits different data format such as Plain text, HTML, XM
JSON etc.

10 SOAP is less preferred than REST. REST more preferred than SOAP.
)

Virtualization in Cloud Computing

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".

In other words, Virtualization is a technique, which allows to share a single


physical instance of a resource or an application among multiple customers and
organizations. It does by assigning a logical name to a physical storage and
providing a pointer to that physical resource when demanded.

What is the concept behind the Virtualization?

Creation of a virtual machine over existing operating system and hardware is


known as Hardware Virtualization. A Virtual machine provides an environment
that is logically separated from the underlying hardware.

The machine on which the virtual machine is going to create is known as Host
Machine and that virtual machine is referred as a Guest Machine

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.

[A hypervisor (or virtual machine monitor, VMM, virtualizer) is computer


software, firmware or hardware that creates and runs virtual machines. A computer
on which a hypervisor runs one or more virtual machines is called a host machine,
and each virtual machine is called a guest machine.]

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.

Usage:

Hardware virtualization is mainly done for the server platforms, because


controlling virtual machines is much easier than controlling a physical server.

2) Operating System Virtualization:


When the virtual machine software or virtual machine manager (VMM) is
installed on the Host operating system instead of directly on the hardware system
is known as operating system virtualization.

Usage:

Operating System Virtualization is mainly used for testing the applications on


different platforms of 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.

Usage:

Server virtualization is done because a single physical server can be divided into
multiple servers on the demand basis and for balancing the load.

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.

Storage virtualization is also implemented by using software applications.

Usage:

Storage virtualization is mainly done for back-up and recovery purposes.

How does virtualization work in cloud computing?

Virtualization plays a very important role in the cloud computing technology,


normally in the cloud computing, users share the data present in the clouds like
application etc, but actually with the help of virtualization users shares the
Infrastructure.

The main usage of Virtualization Technology is to provide the applications with


the standard versions to their cloud users, suppose if the next version of that
application is released, then cloud provider has to provide the latest version to their
cloud users and practically it is possible because it is more expensive.
To overcome this problem we use basically virtualization technology, By using
virtualization, all severs and the software application which are required by other
cloud providers are maintained by the third party people, and the cloud providers
has to pay the money on monthly or annual basis.

Conclusion

Mainly Virtualization means, running multiple operating systems on a single


machine but sharing all the hardware resources. And it helps us to provide the pool
of IT resources so that we can share these IT resources in order get benefits in the
business.

Data Virtualization

Data virtualization is the process of retrieve data from various resources without
knowing its type and physical location where it is stored. It collects heterogeneous
data from different resources and allows data users across the organization to
access this data according to their work requirements. This heterogeneous data can
be accessed using any application such as web portals, web services, E-commerce,
Software as a Service (SaaS), and mobile application.

We can use Data Virtualization in the field of data integration, business


intelligence, and cloud computing.

Advantages of Data Virtualization

There are the following advantages of data virtualization -


o It allows users to access the data without worrying about where it resides on
the memory.
o It offers better customer satisfaction, retention, and revenue growth.
o It provides various security mechanisms that allow users to safely store their
personal and professional information.
o It reduces costs by removing data replication.
o It provides a user-friendly interface to develop customized views.
o It provides various simple and fast deployment resources.
o It increases business user efficiency by providing data in real-time.
o It is used to perform tasks such as data integration, business integration,
Service-Oriented Architecture (SOA) data services, and enterprise search.

Disadvantages of Data Virtualization

o It creates availability issues, because availability is maintained by third-party


providers.
o It required a high implementation cost.
o It creates the availability and scalability issues.
o Although it saves time during the implementation phase of virtualization but
it consumes more time to generate the appropriate result.

Uses of Data Virtualization

There are the following uses of Data Virtualization -

1. Analyze performance

Data virtualization is used to analyze the performance of the organization


compared to previous years.

2. Search and discover interrelated data

Data Virtualization (DV) provides a mechanism to easily search the data which is
similar and internally related to each other.

3. Agile Business Intelligence

It is one of the most common uses of Data Virtualization. It is used in agile


reporting, real-time dashboards that require timely aggregation, analyze and
present the relevant data from multiple resources. Both individuals and managers
use this to monitor performance, which helps to make daily operational decision
processes such as sales, support, finance, logistics, legal, and compliance.

4. Data Management

Data virtualization provides a secure centralized layer to search, discover, and


govern the unified data and its relationships.

Data Virtualization Tools

There are the following Data Virtualization tools -

1. Red Hat JBoss data virtualization

Red Hat virtualization is the best choice for developers and those who are using
micro services and containers. It is written in Java.

2. TIBCO data virtualization

TIBCO helps administrators and users to create a data virtualization platform for
accessing the multiple data sources and data sets. It provides a
builtin transformation engine to combine non-relational and un-structured data
sources.

3. Oracle data service integrator

It is a very popular and powerful data integrator tool which is mainly worked with
Oracle products. It allows organizations to quickly develop and manage data
services to access a single view of data.

4. SAS Federation Server

SAS Federation Server provides various technologies such as scalable, multi-user,


and standards-based data access to access data from multiple data services. It
mainly focuses on securing data.

5. Denodo

Denodo is one of the best data virtualization tools which allows organizations to
minimize the network traffic load and improve response time for large data sets. It
is suitable for both small as well as large organizations.
Industries that use Data Virtualization

o Communication & Technology


In Communication & Technology industry, data virtualization is used to
increase revenue per customer, create a real-time ODS for marketing,
manage customers, improve customer insights, and optimize customer care,
etc.
o Finance
In the field of finance, DV is used to improve trade reconciliation,
empowering data democracy, addressing data complexity, and managing
fixed-risk income.
o Government
In the government sector, DV is used for protecting the environment.
o Healthcare
Data virtualization plays a very important role in the field of healthcare. In
healthcare, DV helps to improve patient care, drive new product innovation,
accelerating M&A synergies, and provide a more efficient claims analysis.
o Manufacturing
In manufacturing industry, data virtualization is used to optimize a global
supply chain, optimize factories, and improve IT assets utilization.

Hardware Virtualization

Previously, there was "one to one relationship" between physical servers and
operating system. Low capacity of CPU, memory, and networking requirements
were available. So, by using this model, the costs of doing business increased. The
physical space, amount of power, and hardware required meant that costs were
adding up.

The hypervisor manages shared the physical resources of the hardware between
the guest operating systems and host operating system. The physical resources
become abstracted versions in standard formats regardless of the hardware
platform. The abstracted hardware is represented as actual hardware. Then the
virtualized operating system looks into these resources as they are physical entities.

Virtualization means abstraction. Hardware virtualization is accomplished by


abstracting the physical hardware layer by use of a hypervisor or VMM (Virtual
Machine Monitor).
When the virtual machine software or virtual machine manager (VMM) or
hypervisor software 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.

Usage of Hardware Virtualization

Hardware virtualization is mainly done for the server platforms, because


controlling virtual machines is much easier than controlling a physical server.

Advantages of Hardware Virtualization

The main benefits of hardware virtualization are more efficient resource utilization,
lower overall costs as well as increased uptime and IT flexibility.

1) More Efficient Resource Utilization:

Physical resources can be shared among virtual machines. Although the unused
resources can be allocated to a virtual machine and that can be used by other
virtual machines if the need exists.

2) Lower Overall Costs Because Of Server Consolidation:

Now it is possible for multiple operating systems can co-exist on a single hardware
platform, so that the number of servers, rack space, and power consumption drops
significantly.

3) Increased Uptime Because Of Advanced Hardware Virtualization Features:

The modern hypervisors provide highly orchestrated operations that maximize the
abstraction of the hardware and help to ensure the maximum uptime. These
functions help to migrate a running virtual machine from one host to another
dynamically, as well as maintain a running copy of virtual machine on another
physical host in case the primary host fails.
4) Increased IT Flexibility:

Hardware virtualization helps for quick deployment of server resources in a


managed and consistent ways. That results in IT being able to adapt quickly and
provide the business with resources needed in good time.

Software Virtualization

Managing applications and distribution becomes a typical task for IT departments.


Installation mechanism differs from application to application. Some programs
require certain helper applications or frameworks and these applications may have
conflict with existing applications.

Software virtualization is just like a virtualization but able to abstract the


software installation procedure and create virtual software installations.

Virtualized software is an application that will be "installed" into its own self-
contained unit.

Example of software virtualization is VMware software, virtual box etc.

Advantages of Software Virtualization

1) Client Deployments Become Easier:

Copying a file to a workstation or linking a file in a network then we can easily


install virtual software.

2) Easy to manage:

To manage updates becomes a simpler task. You need to update at one place and
deploy the updated virtual application to the all clients.

3) Software Migration:

Without software virtualization, moving from one software platform to another


platform takes much time for deploying and impact on end user systems. With the
help of virtualized software environment the migration becomes easier.

Server Virtualization
Server Virtualization is the process of dividing a physical server into several
virtual servers, called virtual private servers. Each virtual private server can run
independently.

The concept of Server Virtualization widely used in the IT infrastructure to


minimizes the costs by increasing the utilization of existing resources.

Types of Server Virtualization

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.

o Type 1 hypervisor ( also known as bare metal or native hypervisors)


o Type 2 hypervisor ( also known as hosted or Embedded hypervisors)

The hypervisor is mainly used to perform various tasks such as allocate physical
hardware resources (CPU, RAM, etc.) to several smaller independent virtual
machines, called "guest" on the host machine.

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.

VMWare , ESX server is the best example of full virtualization.

3. Para Virtualization

Para Virtualization is quite similar to the Full Virtualization. The advantage of


using this virtualization is that it is easier to use, Enhanced performance,
and does not require emulation overhead. Xen primarily and UML use the Para
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.

4. Operating System Virtualization

Operating system virtualization is also called as system-level virtualization. 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.

Linux OS Virtualization and Windows OS Virtualization are the types of


Operating System virtualization.

FreeVPS, OpenVZ, and Linux Vserver are some examples of System-Level


Virtualization.

Note: OS-Level Virtualization never uses a hypervisor.

5. Hardware Assisted Virtualization

Hardware Assisted Virtualization was presented by AMD and Intel. It is also


known as Hardware virtualization, AMD virtualization, and Intel
virtualization. It is designed to increase the performance of the processor. The
advantage of using Hardware Assisted Virtualization is that it requires less
hypervisor overhead.

6. Kernel-Level Virtualization

Kernel-level virtualization is one of the most important types of server


virtualization. It is an open-source virtualization which uses the Linux kernel as a
hypervisor. 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.

Advantages of Server Virtualization

There are the following advantages of Server Virtualization -


1. Independent Restart

In Server Virtualization, each server can be restart independently and does not
affect the working of other virtual servers.

2. Low Cost

Server Virtualization can divide a single server into multiple virtual private
servers, so it reduces the cost of hardware components.

3. Disaster Recovery

Disaster Recovery is one of the best advantages of Server Virtualization. In Server


Virtualization, data can easily and quickly move from one server to another and
these data can be stored and retrieved from anywhere.

4. Faster deployment of resources

Server virtualization allows us to deploy our resources in a simpler and faster way.

5. Security

It allows uses to store their sensitive data inside the data centers.

Disadvantages of Server Virtualization

There are the following disadvantages of Server Virtualization -

1. The biggest disadvantage of server virtualization is that when the server goes
offline, all the websites that are hosted by the server will also go down.
2. There is no way to measure the performance of virtualized environments.
3. It requires a huge amount of RAM consumption.
4. It is difficult to set up and maintain.
5. Some core applications and databases are not supported virtualization.
6. It requires extra hardware resources.

Uses of Server Virtualization

A list of uses of server virtualization is given below -

o Server Virtualization is used in the testing and development environment.


o It improves the availability of servers.
o It allows organizations to make efficient use of resources.
o It reduces redundancy without purchasing additional hardware components.

Storage Virtualization

As we know that, there has been a strong link between the physical host and the
locally installed storage devices. However, that paradigm has been changing
drastically; almost local storage is no longer needed. As the technology
progressing, more advanced storage devices are coming to the market that provide
more functionality, and obsolete the local storage.

Storage virtualization is a major component for storage servers, in the form of


functional RAID levels and controllers. Operating systems and applications with
device can access the disks directly by themselves for writing. The controllers
configure the local storage in RAID groups and present the storage to the operating
system depending upon the configuration. However, the storage is abstracted and
the controller is determining how to write the data or retrieve the requested data for
the operating system.

Storage virtualization is becoming more and more important in various other


forms:

File servers: The operating system writes the data to a remote location with no
need to understand how to write to the physical media.

WAN Accelerators: Instead of sending multiple copies of the same data over the
WAN environment, WAN accelerators will cache the data locally and present the
re-requested blocks at LAN speed, while not impacting the WAN performance.

SAN and NAS: Storage is presented over the Ethernet network of the operating
system. NAS presents the storage as file operations (like NFS). SAN technologies
present the storage as block level storage (like Fibre Channel). SAN technologies
receive the operating instructions only when if the storage was a locally attached
device.

Storage Tiering: Utilizing the storage pool concept as a stepping stone, storage
tiering analyze the most commonly used data and places it on the highest
performing storage pool. The lowest one used data is placed on the weakest
performing storage pool.
This operation is done automatically without any interruption of service to the data
consumer.

Advantages of Storage Virtualization

1. Data is stored in the more convenient locations away from the specific host.
In the case of a host failure, the data is not compromised necessarily.
2. The storage devices can perform advanced functions like replication,
reduplication, and disaster recovery functionality.
3. By doing abstraction of the storage level, IT operations become more
flexible in how storage is provided, partitioned, and protected.

OS Virtualization

With the help of OS virtualization nothing is pre-installed or permanently loaded


on the local device and no-hard disk is needed. Everything runs from the network
using a kind of virtual disk. This virtual disk is actually a disk image file stored on
a remote server, SAN (Storage Area Network) or NAS (Non-volatile Attached
Storage). The client will be connected by the network to this virtual disk and will
boot with the Operating System installed on the virtual disk.

How does OS Virtualization works?

Components needed for using OS Virtualization in the infrastructure are given


below:

The first component is the OS Virtualization server. This server is the center point
in the OS Virtualization infrastructure. The server manages the streaming of the
information on the virtual disks for the client and also determines which client will
be connected to which virtual disk (using a database, this information is stored).
Also the server can host the storage for the virtual disk locally or the server is
connected to the virtual disks via a SAN (Storage Area Network). In high
availability environments there can be more OS Virtualization servers to create no
redundancy and load balancing. The server also ensures that the client will be
unique within the infrastructure.

Secondly, there is a client which will contact the server to get connected to the
virtual disk and asks for components stored on the virtual disk for running the
operating system.
The available supporting components are database for storing the configuration
and settings for the server, a streaming service for the virtual disk content, a
(optional) TFTP service and a (also optional) PXE boot service for connecting the
client to the OS Virtualization servers.

As it is already mentioned that the virtual disk contains an image of a physical disk
from the system that will reflect to the configuration and the settings of those
systems which will be using the virtual disk. When the virtual disk is created then
that disk needs to be assigned to the client that will be using this disk for starting.
The connection between the client and the disk is made through the administrative
tool and saved within the database. When a client has a assigned disk, the machine
can be started with the virtual disk using the following process as displayed in the
given below

Figure:

1) Connecting to the OS Virtualization server:

First we start the machine and set up the connection with the OS Virtualization
server. Most of the products offer several possible methods to connect with the
server. One of the most popular and used methods is using a PXE service, but also
a boot strap is used a lot (because of the disadvantages of the PXE service).
Although each method initializes the network interface card (NIC), receiving a
(DHCP-based) IP address and a connection to the server.
2) Connecting the Virtual Disk:

When the connection is established between the client and the server, the server
will look into its database for checking the client is known or unknown and which
virtual disk is assigned to the client. When more than one virtual disk are
connected then a boot menu will be displayed on the client side. If only one disk is
assigned, that disk will be connected to the client which is mentioned in step
number 3.

3) VDisk connected to the client:

After the desired virtual disk is selected by the client, that virtual disk is connected
through the OS Virtualization server . At the back-end, the OS Virtualization
server makes sure that the client will be unique (for example computer name and
identifier) within the infrastructure.

4) OS is "streamed" to the client:

As soon the disk is connected the server starts streaming the content of the virtual
disk. The software knows which parts are necessary for starting the operating
system smoothly, so that these parts are streamed first. The information streamed
in the system should be stored somewhere (i.e. cached). Most products offer
several ways to cache that information. For examples on the client hard disk or on
the disk of the OS Virtualization server.

5) Additional Streaming:

After that the first part is streamed then the operating system will start to run as
expected. Additional virtual disk data will be streamed when required for running
or starting a function called by the user (for example starting an application
available within the virtual disk).

Linux OS Virutualization

Vmware workstation software is used to do the virtualization of Operating System.


For installing any Operating System virtually, you need to install VMware
software. We are using VMware workstation 10.

Windows OS Virutualization
To install windows OS virtually, you need to install VMware first. After installing
virtualization software, you will get a window to install the new operating system.

Virtualization 2.0 - Pros and Cons

Advertisements
Ad by Valueimpression

Previous Page
Next Page
In this chapter, we will discuss some of the most common advantages and
disadvantages of Virtualization.

Advantages of Virtualization

Following are some of the most recognized advantages of Virtualization, which


are explained in detail.

Using Virtualization for Efficient Hardware Utilization

Virtualization decreases costs by reducing the need for physical hardware


systems. Virtual machines use efficient hardware, which lowers the quantities of
hardware, associated maintenance costs and reduces the power along with cooling
the demand. You can allocate memory, space and CPU in just a second, making
you more self-independent from hardware vendors.

Using Virtualization to Increase Availability

Virtualization platforms offer a number of advanced features that are not found on
physical servers, which increase uptime and availability. Although the vendor
feature names may be different, they usually offer capabilities such as live
migration, storage migration, fault tolerance, high availability and distributed
resource scheduling. These technologies keep virtual machines chugging along or
give them the ability to recover from unplanned outages.
The ability to move a virtual machine from one server to another is perhaps one of
the greatest single benefits of virtualization with far reaching uses. As the
technology continues to mature to the point where it can do long-distance
migrations, such as being able to move a virtual machine from one data center to
another no matter the network latency involved.

Disaster Recovery

Disaster recovery is very easy when your servers are virtualized. With up-to-date
snapshots of your virtual machines, you can quickly get back up and running. An
organization can more easily create an affordable replication site. If a disaster
strikes in the data center or server room itself, you can always move those virtual
machines elsewhere into a cloud provider. Having that level of flexibility means
your disaster recovery plan will be easier to enact and will have a 99% success
rate.

Save Energy

Moving physical servers to virtual machines and consolidating them onto far
fewer physical servers’ means lowering monthly power and cooling costs in the
data center. It reduces carbon footprint and helps to clean up the air we breathe.
Consumers want to see companies reducing their output of pollution and taking
responsibility.

Deploying Servers too fast

You can quickly clone an image, master template or existing virtual machine to
get a server up and running within minutes. You do not have to fill out purchase
orders, wait for shipping and receiving and then rack, stack, and cable a physical
machine only to spend additional hours waiting for the operating system and
applications to complete their installations. With virtual backup tools like Veeam,
redeploying images will be so fast that your end users will hardly notice there was
an issue.

Save Space in your Server Room or Datacenter

Imagine a simple example: you have two racks with 30 physical servers and 4
switches. By virtualizing your servers, it will help you to reduce half the space
used by the physical servers. The result can be two physical servers in a rack with
one switch, where each physical server holds 15 virtualized servers.
Testing and setting up Lab Environment

While you are testing or installing something on your servers and it crashes, do
not panic, as there is no data loss. Just revert to a previous snapshot and you can
move forward as if the mistake did not even happen. You can also isolate these
testing environments from end users while still keeping them online. When you
have completely done your work, deploy it in live.

Shifting all your Local Infrastructure to Cloud in a day

If you decide to shift your entire virtualized infrastructure into a cloud provider,
you can do it in a day. All the hypervisors offer you tools to export your virtual
servers.

Possibility to Divide Services

If you have a single server, holding different applications this can increase the
possibility of the services to crash with each other and increasing the fail rate of
the server. If you virtualize this server, you can put applications in separated
environments from each other as we have discussed previously.

Disadvantages of Virtualization

Although you cannot find many disadvantages for virtualization, we will discuss a
few prominent ones as follows −

Extra Costs

Maybe you have to invest in the virtualization software and possibly additional
hardware might be required to make the virtualization possible. This depends on
your existing network. Many businesses have sufficient capacity to accommodate
the virtualization without requiring much cash. If you have an infrastructure that is
more than five years old, you have to consider an initial renewal budget.

Software Licensing

This is becoming less of a problem as more software vendors adapt to the


increased adoption of virtualization. However, it is important to check with your
vendors to understand how they view software use in a virtualized environment.

Learn the new Infrastructure


Implementing and managing a virtualized environment will require IT staff with
expertise in virtualization. On the user side, a typical virtual environment will
operate similarly to the non-virtual environment. There are some applications that
do not adapt well to the virtualized environment.

You might also like