About SOA, SOAP, and Rest technologies
Service-oriented architecture (SOA)
What Is Service-Oriented
Architecture?
Service-Oriented
Architecture (SOA) is a style of software design where services are provided to
the other components by application components, through a communication
protocol over a network. Its principles are independent of vendors and other
technologies. In service oriented architecture, a number of services
communicate with each other, in one of two ways: through passing data or
through two or more services coordinating an activity. This is just one
definition of Service-Oriented Architecture. An article on Wikipedia goes into
much more detail.
Implementing
Service-Oriented Architecture
When it comes to
implementing service-oriented architecture (SOA), there is a wide range of
technologies that can be used, depending on what your end goal is and what
you’re trying to accomplish.
Typically,
Service-Oriented Architecture is implemented with web services, which makes the
“functional building blocks accessible over standard internet protocols.”
An example of a web
service standard is SOAP, which stands for Simple Object Access Protocol. In a
nutshell, SOAP “is a messaging protocol specification for exchanging structured
information in the implementation of web services in computer networks.
Although SOAP wasn’t well-received at first, since 2003 it has gained more
popularity and is becoming more widely used and accepted. Other options for implementing
Service-Oriented Architecture include Jinni, COBRA, or REST.
It’s important to note
that architectures can “operate independently of specific technologies,” which
means they can be implemented in a variety of ways, including messaging, such
as Active MQ; Apache Thrift; and SORCER.
Benefits of
Service-Oriented Architecture
SOA retains the
procedure-call model commonly used in structured programming and standardizes
the way in which business processes are automated and used, doing so in a way
that maintains security and governance.
Other benefits of SOA
include:
·
Reusable.
Services can be reused to make multiple applications. This is facilitated by
the fact that SOA services are held in a service repository and linked on
demand, making each service a generalized resource available to all -- subject
to governance constraints. Reusing services allows organizations to save time
and lower costs associated with development.
·
Easily
maintained. Since all services are
independent, they can be easily modified and updated without affecting other
services. This will also lower an organization's operating costs.
·
Promotes interoperability. The use of a standardized communication protocol
allows platforms to easily transmit data between clients and services
regardless of the languages they're built on.
·
High availability.
SOA facilities are available to anyone upon request.
·
Increased reliability. SOA generates more reliable applications because it
is easier to debug small services than large code.
·
Scalable.
SOA allows services to run on different servers, thus increasing scalability.
In addition, using a standard communication protocol allows organizations to
reduce the level of interaction between clients and services. Lowering the
level of interaction allows applications to be scaled without adding extra
pressure.
SOA disadvantages
The WS model of SOA has
never been widely accepted or adopted, in part because of its inherent
complexity, but also because of the incompatibility between the WS approach and
the RESTful API model of the internet. The internet, and the related cloud
computing model, exposed specific issues with SOA/WS, and overall, the industry
has moved to a different model.
Other disadvantages of
SOA include:
·
Implementation of
SOA requires a large initial investment.
·
Service management
is complicated since the services exchange millions of messages that are hard
to track.
·
The input
parameters of services are validated every time services interact, thus
decreasing performance and increasing load and response times.
example usages on
distributed systems
To deliver services outside the firewall to new
markets: First Citizens Bank not
only provides services to its own customers, but also to about 20 other
institutions, including check imaging, check processing, outsourced customer
service, and "bank in a box" for getting community-sized bank
everything they need to be up and running. Underneath these services is an SOA-enabled
mainframe operation.
To provide real-time analysis of business events: Through real-time analysis, OfficeMax is able to
order out-of-stock items from the point of sale, employ predictive monitoring
of core business processes such as order fulfillment, and conduct real-time
analysis of business transactions, to quickly measure and track product
affinity, hot sellers, proactive inventory response, price error checks, and
cross-channel analysis.
To streamline the business: Whitney National Bank in New Orleans built a winning
SOA formula that helped the bank attain measurable results on a number of
fronts, including cost savings, integration, and more impactful IT operations.
Metrics and progress are tracked month to month -- not a "fire-and-forget
business case."
To speed time to market: This may be the only remaining competitive advantage
available to large enterprises, said the CIOs of Wal-Mart, Best Buy and
McDonald’s.
To improve federal government operations: The US Government Accountability Office (GAO) issued
guidelines intended to help government agencies achieve enterprise
transformation through enterprise architecture. The guidelines and conclusions
offer a strong business case for commercial businesses also seeking to achieve
greater agility and market strength through shared IT services. As GAO explains
it, effective use of an enterprise architecture achieves a wide range of
benefits.
To improve state and local government operations: The money isn’t there to advance new initiatives, but
state governments may have other tools at their disposal to drive new
innovations — through shared IT service. Along these lines, a new study
released by the National Association of State Chief Information Officers
(NASCIO), TechAmerica and Grant Thornton, says well-managed and focused IT initiatives
may help pick up the slack where spending is being cut back.
To improve healthcare delivery: If there’s any sector of the economy that desperately
needs good information technology, that’s the healthcare sector — subject to a
dizzying array of government mandates, fighting cost overruns at every corner,
and trying to keep up with the latest developments in care and protocols.
To support online business offerings: Thomson Reuters, a provider of business intelligence
information for businesses and professionals, maintains a stable of 4,000
services that it makes available to outside customers. For example, one such
service, Thomson ONE Analytics, delivers a broad and deep range of financial
content to Thomson Reuters clientele. Truly an example of SOA supporting the
cloud.
To virtualize history: Colonial Williamsburg, Virginia, implementing a
virtualized, tiered storage pool to manage its information and content.
To defend the universe: US Air Force space administrator announced that new
space-based situational awareness systems will be deployed on service oriented
architecture-based infrastructure.
SOAP
SOAP Introduction
In today's world, there
is huge number of applications which are built on different programming
languages. For example, there could be a web application designed in Java,
another in .Net and another in PHP.
Exchanging data between
applications is crucial in today's networked world. But data exchange between
these heterogeneous applications would be complex. So will be the complexity of
the code to accomplish this data exchange.
One of the methods used
to combat this complexity is to use XML (Extensible Markup Language) as the
intermediate language for exchanging data between applications.
Every programming
language can understand the XML markup language. Hence, XML was used as the
underlying medium for data exchange.
But there are no standard
specifications on use of XML across all programming languages for data
exchange. That is where SOAP software comes in.
SOAP was designed to work
with XML over HTTP and have some sort of specification which could be used
across all applications. We will look into further details on the SOAP protocol
in the subsequent chapters.
Advantages of SOAP
The following are some of
the many advantages that SOAP provides.
1. Language neutrality :SOAP can be developed using any language.
2. Interoperability and Platform Independence : SOAP can be implemented in any language and can be
executed in any platform.
3. Simplicity :
SOAP messages are in very simple XML format.
4. Scalability :
SOAP uses HTTP protocol for transport due to which it becomes scalable.
Disadvantages of SOAP.
The following are the
disadvantages of SOAP.
1. Slow :
SOAP uses the XML format which needs to be parsed and is lengthier too which
makes SOAP slower than CORBA, RMI or IIOP.
2. WSDL Dependence :
It depends on WSDL and does not have any standardized mechanism for dynamic
discovery of the services.
Rest technologies
Introduction
Application Programming
Interface (API) is a set of clearly defined methods of communication between
various software components. A good API makes it easier to develop a computer
program by providing all the building blocks. While the specifications vary between
various APIs, the end goal is to provide value to the programmer through
utilization of the services gained from using an API.
Advantages of REST API:
REST API is easy to
understand and learn, due to its simplicity, known API.
With REST API, being able
to organize complicated applications & makes it easy to use resources.
The high load can be
managed with help out of HTTP proxy server & cache.
REST API is easy to
explore and discover.
It makes it simple for
new clients to work on other applications, whether it is designed specifically
for purpose or not.
Use standard HTTP
procedure call- outs to retrieve data and requests.
REST API depends on
codes, can use it to synchronize data with a website without any complications.
Users can avail access to
the same standard objects and data model when compared to SOAP-based web
services.
Brings flexibility
formats by serializing data in XML or JSON format.
Allows Standard-based
protection with the use of OAuth protocols to verify your REST requests.
Disadvantages or
Challenges in REST:
Lack of state:
most web applications require stateful mechanisms. Suppose you purchase a
website which has a mechanism to have a shopping cart. It is required to know
the number of items in the shopping cart before the actual purchase is made.
This burden of maintaining the state lies on the client, which makes the client
application heavy and difficult to maintain.
Last of security:
REST doest impose security such as SOAP. That is the reason REST is appropriate
for public URLs, but it is not good for confidential data passage between
client and server.
Comments
Post a Comment