What Is Service Oriented
What Is Service Oriented
functional, scalable software systems from individual components, called services. Services
can interact with one another to perform tasks, such as allowing someone to sign in once
and access a variety of business applications. In SOA, the emphasis is on modularity,
reusability, and interoperability —when businesses break complex applications down into
smaller, more manageable building blocks, the result is greater fl exibility and scalability.
Services aren’t hard-coded into applications. Instead, services are a published to a registry,
and when an application wants to use a service, it asks the registry to find the latest
version. In this way, services can be easily c hanged or updated by people without detailed
knowledge of the application. An SOA approach makes it easier to adapt to changing
business needs and to integrate systems that provide related functionality.
With SOA, individual services are loosely coupled an d can communicate and transmit data
as needed. For example, taking an SOA approach to developing cloud software creates
benefits, including:
Adaptability. SOA both preserves backward compatibility and facilitates future planning.
Developers can bring older services into a newer environment or even replace dated
services with newer versions that take advantage of updated hardware and cloud
infrastructure.
Scalability. Services can be monitored by the SOA management layer, and if performance
dips too low because of increased demand, new instances of a service can be started to
improve performance. Applications that use the service won’t know about the new
instances, they’ll just see that operating levels remain acceptable.
Sites and apps with universal logins: Many companies seek to create application
environments where employees need only one password to access the applications they
need. An SOA architecture lets authentication management be handled by a set of services
that are then used by the company’s applications.
Applications offering in-app AI or analysis: One key advantage to running systems in the
cloud is that it’s a simple matter to use cloud services to improve the functionality of an
application. Cloud services can be simple, such as creating a graph from a set of data. They
can also be complex; think letting developers add AI functionality to an application through
a set of service calls.
Online retailers: SOA allows for easier development and management of ecommerce sites
through the use of services that fetch inventory data, track purchases, make secure
payments, and fetch AI-generated data such as “customers also like” recommendatio ns.
SOA makes for a modular and flexible software infrastructure, where individual services
can be developed, tested, and deployed independently. Two key benefits are ease of
maintenance and scalability.
SOA works by loosely coupling services within the framework of an application. Each
service works as a module capable of delivering the input/output requested. The
application doesn’t need to know the version of the service it’s using. Instead, it checks a
registry and finds the most current service offering the functionality needed. Consider the
following workflow of a retailer’s website built with an SOA model.
A shopper inputs a single-sign-on login using a recognized email address and password.
The retail application sends this login to the authorization service for authentication and
loads the customer profile when the login is verified.
The shopper then searches for a specific product. The item listing is connected to an
inventory service, which pulls data for availability at brick -and-mortar locations local to
the customer and at fulfilment centers for shipping.
The customer checks out using an integrated ca rt service, which then connects to a
payment processing service for a secure transaction.
Once the transaction is complete, the buyer can pull up the order status using other
services to fetch data from inventory and shipping logistics services.
SOA speeds development of this sort of site by allowing integration of services in an off -
the-shelf manner. In this example, the retailer is not only spared the burden of developing
each of those modules individually but it’s also freed from needing to tra ck service
updates. IT can simply use vetted services with proven functionality, security, and
availability.
The key to SOA development is to think modularly and understand where opportunities
exist for service integration. Applications developed in the cl oud can easily take advantage
of huge arrays of SOA-style services implemented as web services.
Efficient maintenance
It’s easier to create, update, and debug small services than large code blocks in
monolithic applications. Modifying any service in SOA does not impact the overall
functionality of the business process.
Greater adaptability
SOA is more adaptable to advances in technology. You can modernize your applications
efficiently and cost effectively. For example, healthcare organizations can use the
functionality of older electronic health record systems in newer cloud -based
applications.
Interoperability
Each service in SOA includes description documents that specify the functionality of the
service and the related terms and conditions. Any client system can run a service,
regardless of the underlying platform or programming language. For instance, business
processes can use services written in both C# and Python. Since there are no direct
interactions, changes in one service do not affect other components using the service.
Loose coupling
Services in SOA should be loosely coupled, having as little dependency a s possible on
external resources such as data models or information systems. They should also be
stateless without retaining any information from past sessions or transactions. This way,
if you modify a service, it won’t significantly impact the client app lications and other
services using the service.
Abstraction
Clients or service users in SOA need not know the service's code logic or implementation
details. To them, services should appear like a black box. Clients get the required
information about what the service does and how to use it through service contracts and
other service description documents.
Granularity
Services in SOA should have an appropriate size and scope, ideally packing one discrete
business function per service. Developers can then use multiple services to create a
composite service for performing complex operations.
Service
Services are the basic building blocks of SOA. They can be private —available only to
internal users of an organization —or public—accessible over the internet to all.
Individually, each service has three main features.
Service implementation
The service implementation is the code that bui lds the logic for performing the specific
service function, such as user authentication or bill calculation.
Service contract
The service contract defines the nature of the service and its associated terms and
conditions, such as the prerequisites for usin g the service, service cost, and quality of
service provided.
Service interface
In SOA, other services or systems communicate with a service through its service
interface. The interface defines how you can invoke the service to perform activities or
exchange data. It reduces dependencies between services and the service requester.
For example, even users with little or no understanding of the underlying code logic can
use a service through its interface.
Service provider
The service provider creates, main tains, and provides one or more services that others
can use. Organizations can create their own services or purchase them from third -party
service vendors.
Service consumer
The service consumer requests the service provider to run a specific service. It c an be
an entire system, application, or other service. The service contract specifies the rules
that the service provider and consumer must follow when interacting with each other.
Service providers and consumers can belong to different departments, organi zations,
and even industries.
Service registry
A service registry, or service repository, is a network -accessible directory of available
services. It stores service description documents from service providers. The description
documents contain information about the service and how to communicate with it.
Service consumers can easily discover the services they need by using the service
registry.
Communication protocols
Services communicate using established rules that determine data transmission over a
network. These rules are called communication protocols. Some standard protocols to
implement SOA include the following:
You can even use more than one protocol in your SOA implementation.
What is an ESB in service-oriented architecture?
An enterprise service bus (ESB) is software that you can use when commun icating with
a system that has multiple services. It establishes communication between services and
service consumers no matter what the technology.
Benefits of ESB
An ESB provides communication and transformation capabilities through a reusable
service interface. You can think of an ESB as a centralized service that routes service
requests to the appropriate service. It also transforms the request into a format that is
acceptable for the service’s underlying platform and programing language.
Increasing interdependencies
Service-oriented architecture (SOA) systems can become more complex over time and
develop several interdependencies between services. They can be hard to modify or
debug if several services are calling each other in a loop. Shared resources, such as
centralized databases, can also slow down the system.
Benefits of microservices
Microservices are independently scalable, fast, p ortable, and platform agnostic —
characteristics native to the cloud. They are also decoupled, which means they have
limited to no dependencies on other microservices. To achieve this, microservices have
local access to all the data they need instead of remo te access to centralized data that
other systems also access and use. This creates data duplication which microservices
make up for in performance and agility.
Microservices on AW S help you innovate faster, reduce risk, accelerate time to market,
and decrease your total cost of owne rship. Get started with SOA and microservices on
AWS by creating an AWS account today.
What's the difference Between SOA and
microservices?
Service-oriented architecture (SOA) is a method of software development that uses
software components called services to create business applications. Each service
provides a business capability. They can also communicate with each other across
platforms and languages. Developers use SOA to reuse services in different systems or
combine several independent services to perform complex tasks. Microservices
architecture is an evolution of the SOA architectural style. While each SOA service is a
full business capability, each microservice is a much smaller soft ware component that
specializes in a single task only. Microservices address the shortcomings of SOA to
make the software more compatible with modern cloud -based enterprise environments.
Read about SOA »
Read about microservices »
Scaling challenges that require the entire application to scale, even if only a specific
component needs additional resources.
The inability to add or modify features flexibly, as functionality is distributed across the
code base.
The inability to reuse components across different applications.
Limited fault tolerance. Failure in one component can pote ntially bring down the entire
system.
The challenge of adopting new technologies or integrating with external systems that
use different technologies.
With SOA, developers break down the software functionalities into service provider and
service consumer layers. These laye rs communicate and exchange data through an
enterprise service bus (ESB). Developers use SOA to simplify complex applications into
multiple reusable services.
What limitations of SOA architecture does the
microservices architecture solve?
While service-oriented architecture (SOA) might work well for building large enterprise
applications, it needs more flexibility to scale smaller, business -specific applications.
These are some limitations of SOA:
The enterprise service bus (ESB) connects multiple services together, which makes it a
single point of failure.
All services share a common data repository. This makes the services difficult to manage
individually.
Every service has a broad scope. So, if one of the services fails, the entire business
workflow will be affected.
So, developers turn to microservices architecture for a more fine -grained approach to
building applications.
The microservice model divides an SOA service into smaller services. Each microservice
operates within its bounded context and run s independently from other services. In
short, the microservices architecture has limited or no interdependencies between
individual services and reduces the risk of system -wide failure.
Implementation
The SOA implementation involves integrating different types of services into an
application. It uses an enterprise service bus to connect service types, like these:
Functional services to support specific business operations
Enterprise services to expose a particular business functionality to other services
Application services used by developers for building and deploying applications
APIs are a common tool for microservices architectures. An API allows two or more
microservices to exchange data directly without going through a central ized channel.
However, it can create complex data pathways among dozens of microservices, which
developers monitor and manage.
Data storage
The SOA environment comprises a single data storage layer shared by other connected
services. Different enterprise a pplications access and reuse the same data in SOA
implementations, which optimizes the value of data repositories.
In contrast, each microservice has its own data storage. In microservices architectures,
data independence is more important than reusability .
Deployment
It can be challenging to deploy SOA services because they’re coupled to a certain
degree. For example, developers must rebuild the entire application if they modify or
add a new service. Besides, SOA applications cannot take full advantage of
containerization, which abstracts the application from operating systems and hardware.
Meanwhile, microservices are easier to deploy as they are designed to scale in the cloud
environment. Each microservice is an independent applicaiton that developers ca n
containerize and deploy on the cloud.
Reusability
One of the principles in SOA designs is an emphasis on reusability and component
sharing. In this architecture, multiple front -facing applications use the same SOA
services. For example, an invoicing and order-tracking dashboard can access the same
service to retrieve customer details.
Meanwhile, microservices take a different approach. They apply data duplication instead
of sharing common resources. This way, a microservices -based application performs
more efficiently and isn’t confined to the data operations of other services.
Speed
SOA might offer decent speed in simple implementations, but data latency increases as
developers add more services to the system. All services compete f or the same
communication resources and data capabilities.
Governance flexibility
SOA-based applications provide consistent data governance across common
repositories used by different services.
SOA
Organizations with legacy or stand -alone enterprise applications benefit from the SOA
architecture. SOA simplifies conventional softwar e programs into smaller modular parts.
It also pools shared resources to streamline business functionalities. Rather than
building overlapping and redundant services, developers can reuse existing SOA
services to implement more business solutions.
Microservices
Microservices architecture is the better option to support agile development teams.
Developers can make rapid and incremental code changes without affecting the
application’s stability by using continuous integration and continuous delivery (CI/CD)
tools. Microservices are better when developers have these goals:
With microservices, companies can benefit from modern cloud capabilities and deploy
hundreds of microservices with ease.
Reusability Reusable services through Every service has its own independent
shared common resources. resources. You can reuse
microservices through their APIs.