Service-Oriented Architecture (SOA)

The Service-Oriented Architecture (SOA) has been providing the foundation of business computing. Its ability to significantly accelerate the development of business-critical applications promotes business agility, decreases total cost of ownership, and greatly increases the efficiency and strategic value of IT.

Introduction

SOA is a business-centric IT architectural approach that supports connecting your business as linked, repeatable business tasks, or services. - IBM

The flexibility of SOA unites both business and IT requirements that can be easily integrated and adapted.

Architectural Principles:

Loose Coupling
Services keep a relationship that reduces dependencies and only maintain a recognition of each other
Service Contract
Services follow a communications agreement as defined collectively by one or more service description documents
Service Abstraction
Services hide logic from the outside world which is beyond what is mentioned in the service contract.
Service Reusability
Logic is split into services with the intention of fostering reuse
Service Composability
Collections of services can be coordinated and gathered to form composite services
Service Autonomy
Services have command over the logic they encapsulate

Challenges:

  • Managing services
    1. Inadequate attention to governance of services can cause performance and reliability issues
  • Delivering proper security for roles
  • Promising inter-operability of Services
  • Deciding about appropriate boundary and responsibility of each Service

When to use SOA?

Below are the drivers for the usage of Service-oriented architecture:

  • Large-scale Enterprise systems

  • Reduce the cost of doing business

  • Implementation abstraction

  • Business process reuse (multiple use cases for the same process)

Benefits:

Decreased cost:
  • Add value to core investments by taking advantage of existing assets
  • Reducing integration expense
Built for change
  • Incremental implementation approach is supported.
  • Helps applications evolve over time and last
Services Scale
  • Build scalable, evolvable systems
  • Scale down to mobile devices
Platform independent Use
  • Loose Coupling allows flexibility

Leave a Reply