Saturday 6 November 2021

Service-oriented architecture (SOA)

SOA, or service-oriented architecture, defines a way to make software components reusable via service interfaces. These interfaces utilize common communication standards in such a way that they can be rapidly incorporated into new applications without having to perform deep integration each time.

Each service in an SOA embodies the code and data integrations required to execute a complete, discrete business function (e.g., checking a customer’s credit, calculating a monthly loan payment, or processing a mortgage application). The service interfaces provide loose coupling, meaning they can be called with little or no knowledge of how the integration is implemented underneath. The services are exposed using standard network protocols—such as SOAP (simple object access protocol)/HTTP or JSON/HTTP—to send requests to read or change data. The services are published in a way that enables developers to quickly find them and reuse them to assemble new applications.

These services can be built from scratch but are often created by exposing functions from legacy systems of record as service interfaces.

In this way, SOA represents an important stage in the evolution of application development and integration over the last few decades. Before SOA emerged in the late 1990s, connecting an application to data or functionality housed in another system required complex point-to-point integration—integration that developers had to recreate, in part or whole, for each new development project. Exposing those functions through SOA eliminates the need to recreate the deep integration every time

There are two major roles within Service-oriented Architecture:

Service provider: The service provider is the maintainer of the service and the organization that makes available one or more services for others to use. To advertise services, the provider can publish them in a registry, together with a service contract that specifies the nature of the service, how to use it, the requirements for the service, and the fees charged.

Service consumer: The service consumer can locate the service metadata in the registry and develop the required client components to bind and use the service.

Advantages of SOA:
  1. Service reusability: In SOA, applications are made from existing services. Thus, services can be reused to make many applications.
  2. Easy maintenance: As services are independent of each other they can be updated and modified easily without affecting other services.
  3. Platform independent: SOA allows making a complex application by combining services picked from different sources, independent of the platform.
  4. Availability: SOA facilities are easily available to anyone on request.
  5. Reliability: SOA applications are more reliable because it is easy to debug small services rather than huge codes
  6. Scalability: Services can run on different servers within an environment, this increases scalability
Disadvantages of SOA:
  1. High overhead: A validation of input parameters of services is done whenever services interact this decreases performance as it increases load and response time.
  2. High investment: A huge initial investment is required for SOA.
  3. Complex service management: When services interact they exchange messages to tasks. the number of messages may go in millions. It becomes a cumbersome task to handle a large number of messages.


Post a Comment

Note: only a member of this blog may post a comment.

Machine Learning



Java Tutorial




C Programming


Python Tutorial


Data Structures


computer Organization