Service-oriented architecture

Service Oriented Architecture defined

In simple terms, this is a form of approach in which the software employs the use of various services in its network. This approach leverages on the internet, to provide services which are combined to ensure the functionality of applications. There are three cores to the framework of SOA.

  • This framework works based on the fact that many facilities from services already in existence are combined to form an application. 
  • Core to the framework of SOA is the involvement of a set of design principles that helps in the structuring of system development and also affords a means in which various components are integrated into a decentralized system.
  • The SOA computing couples various functions into a set of interoperable services; this is then incorporated into multiple systems of software situated on different business domains.

Roles found in Service Oriented Architecture (SOA)

Just as any other form of service provision, there are defined roles on both sides of the service. There are the service providers and the service consumers

  • The service providers: These are persons or structures involved in the maintenance of the service. They are the organizations that make sure the services are available for use by individuals and other corporate bodies. Services rendered by these providers can be published in the registry, to make people aware. Consumers are enlightened on what the service is all about, how it can be used, and how fees are charged.
  • The service consumers: These are the ones that make use of the service. On being aware of the service, they serve as the component that utilizes the service.

Interactions patterns in SOA

There are two main interaction patterns in SOA, and these are Service orchestration and Service Choreography.

  • Service Orchestration:This is the process in which services gather information and data that has been curated from other services, in a bid to satisfy service consumers.
  • Service choreography:This is the process which involves the coordination of interaction of various services, in such a way, there is no centralized system of control.

Principles that guide SOA

  • A standardized service contract: This states the fact that services are specified through one or more documents describing the functions. 
  • Abstraction:This principle states that a service owes its definition to service contracts and description documents.
  • Reusability: This principle ensure that the various services designed can be reused as effectively as possible, resulting in a reduction in cost and time needed for development.
  • Loose coupling:This ensures that the various services are designed as components with self-containment. The services are also designed in such a way that they foster relationships that do not involve maximum dependence on other services.
  • Autonomy: The various services are autonomous, and exact total control on their underlying logic.
  • Ease of discovery:No service is useful in the solution it aims to create if it isn’t easily discoverable. In this case, the description documents are made to contain metadata which can help in their discovery.

Pros of Service Oriented Architecture

Service-oriented Architecture is an essential approach in the software design world. This process has the following benefits.

  • The service can be reused: The various SOA applications are produced from services already in existence. As a result of this, the services that emanate can be easily reused.
  • The services can be easily maintained: The various services created on the SOA platform are made to be independent of each other. Hence, the services can be updated and adjusted independently of each other.
  • The platform itself is independent. The platform allows for the innovation of applications, just by combining other services that have been picked from different sources.
  • The various facilities of SOA can be easily accessed and are readily available, once a request is placed.
  • The SOA platform is reliable. In the course of use, it is easy to debug minor services, unlike huge codes.
  • The services can easily be scaled at will because they are run on different servers within a particular environment.

Cons to Service Oriented Architecture (SOA)

Service-oriented Architecture (SOA) does not come without its flaws and shortcomings.

  • To execute service-oriented architecture, there is the involvement of enormous capital investment.
  • At a point in its development, services may become daunting to manage. This is because, in the course of creation, there is the swapping of messages to tasks, and when numbered, these may be up to millions.

The role of service-oriented architecture in software design cannot be overemphasized. It is a decentralized system with the ease of scalability. When properly utilized, it can be of immense benefit in health care delivery, in the army’s’ deployment of awareness systems. In the gaming world, SOA can also come into play as software games are designed to make use of inbuilt system functions. These are ways in which we can use Service-oriented Architecture.

Leave a comment