Unit 2
Unit 2
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.
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:
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.
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.)
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"
}
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.
HTTP Response
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.
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.
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.
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.
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.
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.
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.
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.
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 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 a xml document containing information about web services such as method name,
method parameter and how to access it.
SOAP stands for Simple Object Access Protocol. It is a XML-based protocol for accessing web
services.
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
Language and Platform independent: SOAP web services can be written in any programming
language and executed in any platform.
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.
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.
There are many differences between SOAP and REST web services.
o. SOAP REST
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.
)
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.
The main job of hypervisor is to control and monitoring the processor, memory
and other hardware resources.
Usage:
Usage:
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.
Usage:
Conclusion
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.
1. Analyze performance
Data Virtualization (DV) provides a mechanism to easily search the data which is
similar and internally related to each other.
4. Data Management
Red Hat virtualization is the best choice for developers and those who are using
micro services and containers. It is written in Java.
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.
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.
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
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.
The main job of hypervisor is to control and monitoring the processor, memory
and other hardware resources.
The main benefits of hardware virtualization are more efficient resource utilization,
lower overall costs as well as increased uptime and IT flexibility.
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.
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.
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:
Software Virtualization
Virtualized software is an application that will be "installed" into its own self-
contained unit.
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:
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.
1. Hypervisor
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.
3. Para Virtualization
6. Kernel-Level Virtualization
User Mode Linux (UML) and Kernel-based virtual machine are some examples
of kernel virtualization.
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
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.
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.
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.
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.
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
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:
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.
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.
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
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.
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
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.
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.
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.
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.
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