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