Abstract

SOA is a well-known term today, when we think of SOA, WCF comes to mind. WCF is a Microsoft technology to build SOA-based software solutions. This article will help you understand what exactly “SOA” is in an actual architectural manner, why architects suggest SOA-based application architecture and how SOA can be implemented, and so on.

What SOA is?

Service-Oriented Architecture (SOA) is an Architectural Design Pattern / Approach, under which distributed and decoupled applications can interact with each other. SOA is not a technology or a Language.

SOA provides the infrastructure for the idea of how two independent business entities communicate and work together. For example, a bank that offers Stock services, a travel site with the feature to book a flight, a hotel, a car or even a holiday package and so on., weather updates and currency rates, and so on. All such activities take place due to B2B integration and SOA is the oxygen for such type of business activities.

Before a service can be consumed, a request message needs to be sent to the service (the provider, or callee) by its client (the consumer, or caller). A request message contains information about the operation the service is being asked to perform and any additional data that the specific operation needs to have before executing. For example, a service that shows you a currency exchange rate needs to have two currency types and how much money you want to convert. For example 100 USD to INR.

Why SOA?

In today's world, we heavily rely on software systems, for example, a bank's system communicates with various other software and database systems.

This usually causes Software applications to encounter the following challenges.

SOA resolves these challenges by defining standards for interaction among decoupled systems and technologies based on policies and contracts.

SOA Objectives

SOA is intended to provide loosely coupled interaction among applications. Benefits offered by SOA are as follows:

Communicating with SOA-based Service

SOA-based services communicate with the outside world via endpoint(s). Hence, an endpoint is required to communicate with a service.

Properties of SOA Architecture

Service-Oriented Architecture is based on the following four tenets.

Services handle data, not objects

Objects are known to have a direct dependency on a particular technology, while XML data is not technology-specific. Hence, services communicate by exchanging data as long as they use the same standards by which the service operates.

Services are autonomous

In order to utilize a Service, a client does not need to know the implementation technology and various other internal/implementation details. What all a client requires is the service's address (In other words endpoint) and the information to send the data to.

Services have explicit boundaries

The service is responsible for exposing its information. Everything inside the service's boundary is only accessible through the service endpoint. The service's boundaries are explicit, meaning that the service specifies precisely which messages it can receive and what the messages need to contain; messages that are not compliant with these specifications will be rejected with an error message.

Services expose contract and policy

The contract of the service defines the data that the client needs to use when calling a service. Service contracts also define the response that the service sends back to the client as a result of calls made to the service.

The service's policy defines additional information about the data that is being sent. For example, a policy can state that the data needs to be encrypted, and so on.

SOA Benefits

Productivity

Agility

Reduced IT Costs

Many Communication Technologies

High Scalability

Interoperability among Systems

Service Reliability

Built-in Security

How to Implement SOA using Microsoft Technology Stack?

WCF is a prime member of Microsoft's SOA technology stack to implement the SOA Architecture.