What is SOA?
Service Oriented Architecture (SOA) is an architectural approach in which application components makes use of a collection of services available in a network, which communicates with each other.
In service oriented architecture, services communicate with each other, either to pass the data or to coordinating an activity.
OR
SOA is an approach for distributed systems architecture that employs loosely coupled services, standard interfaces and protocols, to deliver seamless cross-platform integration.
It is used to integrate widely divergent components, by providing them with a common interface and a set of protocols for them to communicate through what is called a service bus.
In business terminology, SOA is a business-centric IT architectural service that supports integrating your business as linked, repeatable business tasks, or services. The structural design of SOA makes sure that there is an alignment with the requirements of the business as well as the technological solution of the same.
Table of Content
Roles in Service Oriented Architecture
There are three major roles in Service Oriented Architecture (SOA).
Those building blocks are: service provider; service broker, service registry, service repository; and service requester/consumer.
- Service provider: is the maintainer of the service and works in conjunction with the service registry, debating the whys and hows of the services being offered, such as security, availability, what to charge, and more.
This role also determines the service category and if there need to be any trading agreements. - Service broker: makes information regarding the service available to those requesting it. The scope of the broker is determined by whoever implements it.
- Service Consumer: locates entries in the broker registry and then binds them to the service provider. They may or may not be able to access multiple services; that depends on the capability of the service requester.
SOA Components
Elements of SOA components are briefly explained below:
- Application frontend: are active element of the SOA, delivering the value of to the end-users. They initiate and control all activity of the enterprise system.
- Service: It is a software component that encapsulates high-level business concept.
- Contract: It provide a specification of the purpose, functionality, constraints and usage of services.
- Interface: Functionality of the service exposed by the service to the client that are connected to the service.
- Implementation: The service implementation provides the required business logic and appropriate data. It contains one or more of the artifact: programs, configurations, data and database.
- Business logic: business process represented by the service.
- Data: data represented in the service used by the service.
- Service repository: It register the services and attribution to facilitate the discovery of services operation access rights, owner, qualities etc.
- Service bus: A flexible infrastructure for integrating applications and services by routing message, transforming protocol between requestor and service, handing business events and delivering them, providing QoS, security and managing the interaction among services.
Why Service Oriented Architecture (SOA) Is Important
There are many benefits of SOA, especially in web service based business. We’ll outline a few of those benefits here, in brief:
- Language Neutral Integration: Regardless of the developing language used, the system offer and invoke services through a common mechanism. Programming language neutralization is one of the key benefits of the integration approach.
- Component reuse: once an organisation built an application component and offered it as a service then the rest of the organisation can utilise that service.
- Organisational agility: Agility is a quality inherent in just about any aspect of the enterprise. A simple algorithm, a software component, a solution, a platform, a process—all of these parts contain a measure of agility related to how they are constructed, positioned, and leveraged.
- Leveraging existing system: This is one of the major use of SOA which is to classify elements or functions of existing applications and make them available to the organisations or enterprise.
Advantages of SOA
Some of the broad advantages of SOA is mentioned below:
- Service reusability: In SOA, we build a new application, by reusing the service of an existing system.
- Easy maintenance: SOA allows adding new services or upgrading existing services according to the new business requirements.
- Platform independant: As SOA allow making of a new complex application by integrating the service from a different source, independent of platform.
- Reliability: SOA application is more reliable because debugging the small code is easier to maintain than huge code.
- Scalability: In SOA, service can run on a different server within an environment, which scale a business to meet the needs of the client.
Disadvantages of SOA
Disadvantages of SOA is briefly explained below:
- High overhead: In SOA, all inputs square measures its validity before it’s sent to the service.
- High Cost: Hude investment is required in terms of technology, development and human resource.
- Complex Service Management: There are millions of message interact in a millisecond, so complex service management system and high bandwidth server are required by SOA.
Limitations of SOA
Although SOA has many benefits and advantages, still it has SOA limitations and is not recommended to be used in the following cases:
- Standalone applications where integration is not required.
- Message passing not required by the application.
- Short life span applications.
- Homogeneous applications.
- Heavy data transfer used by an application.
Application of SOA
Following are the SOA application briefly mentioned below:
- Defence Force: SOA infrastructure is deployed by defence forces for situational awareness systems.
Example: US Air Force space administrator announced that new space-based situational awareness systems. - Healthcare delivery: Health care sector desperately needs good information technology and trying to keep up with the latest developments in care and protocols.
- Mobile App: Many mobile apps are using built-in function to run games.
SOA Example
Here is some SOA example at work mentioned below:
- 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.
- 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.
- McDonald: SOA is the only remaining competitive advantage available to large enterprises, said the CIOs of Wal-Mart, Best Buy and McDonald’s.
- Indian Air Force space administrator has deployed the new space-based situational awareness systems on SOA based infrastructure.
SOA Principles
Much like object-orientation, service-orientation has become a distinct design approach which introduces commonly accepted principles that govern the positioning and design of our architectural components.
Let’s highlight some of the key aspects of these soa principles here:
- Loose coupling: Services maintain a relationship that minimizes dependencies and only requires that they retain an awareness of each other.
- Service contract: Services adhere to a communications agreement, as defined collectively by one or more service descriptions and related documents.
- Autonomy: Services have control over the logic they encapsulate.
- Abstraction: Beyond what is described in the service contract, services hide logic from the outside world.
- Reusability: Logic is divided into services with the intention of promoting reuse.
- Composability: Collections of services can be coordinated and assembled to form composite services.
- Statelessness: Services minimize retaining information specific to an activity.
- Discoverability: Services are designed to be outwardly descriptive so that they can be found and assessed via available discovery mechanisms.
Service Oriented Architecture (SOA) Layer
SOA Layer or Framework consist of two-layer: horizontal layers and vertical layers.
SOA Horizontal Layers
5 different SOA horizontal layers which are:
- Consumer interface layer: These are GUI app for user to access the services.
- Business process composition or choreography layer: It is a service layer that represents the business use case and business processes.
- Services layer: Many service work together for creating a whole enterprise in service inventory.
- Service components layer: like technological interfaces, functional and technical libraries, etc.
- Operational systems layer: This layer contains the data models, technical patterns and data repository, etc.
SOA Vertical Layers
The following are the vertical layers of SOA framework
- Integration layer: This layer enables the integration of services through the introduction of a reliable set of capabilities, such as intelligent routing, protocol mediation, and other transformation mechanisms
- Quality of service: This layer provides the capabilities required to monitor, manage, and maintain QoS such as security, performance, and availability. This is a background process through sense-and-respond mechanisms and tools that monitor the health of SOA applications
- Informational: this layer is concerned with providing the information for business related.
- Governance: also known as IT strategy layer is governed by horizontal layers in order to reach required operational capability as needed.
SOA in Cloud Computing
First, it’s important to note that Service-Oriented Architecture can work with or without cloud computing, although more and more businesses are moving file storage to the cloud so it makes sense to use cloud computing and Service-Oriented Architecture together.
In a nutshell, using SOA in cloud computing allows users to easily and immediately implement services tailored to the requirements of their clients, “without needing to consult an IT department.”
One downfall of using SOA in cloud computing is that some aspects of it are not evaluated, such as security and availability. When using cloud computing, users are often at the mercy of the provider.
There is one fairly major challenge businesses face when using SOA in cloud computing is that, the integration of existing data and systems into the cloud solution. It’s also important to keep in mind that not every IT aspect can be outsourced to the cloud — there are some things that still need to be done manually.
Summary
SOA or Service oriented Architecture is a method through which different types of services can interact with each other independently.
SOA provides a new way of developing and integrating enterprise applications as it is based on interoperable, reusable services. But it requires huge initial investment and change in mindset to adapt to new technology.
Reference
- Arsanjani, A. (2004). Service-oriented modeling and architecture. IBM developer works, 1, 15.
- Joe M. (2010). Ten examples of SOA at work in 2010. Retrieved from https://www.zdnet.com/article/ten-examples-of-soa-at-work-in-2010/
- Oracle ACE Director. (2014). SOA and Cloud Computing. Retrieved from https://www.oracle.com/technical-resources/articles/middleware/soa-ind-soa-cloud.html
Go On, Share Article with others
Did we miss something in Cloud Computing Tutorial? Come on! Tell us what you think about our article on What is SOA – Service Oriented Architecture | Explained 2020 in the comments section.