Service - Oriented Architecture (SOA)

Introduction

A Service-Oriented Architecture(SOA) is a loosely-coupled, reusable software component, which encapsulates different functionalities which are distributed and programmatically accessed. It emerged in  the 2000s. It is Message-oriented architecture based on XML. So, its main principle is to design software with shared, reusable, distributed services mode.
 
Below are the attributes of SOA,
  1. Separation of Service interface from underlying implementation (Loose Coupling).
  2. Promotes the Service reuse through discoverable and self-describing Service.
  3. Services are course-grained, composable and rely on the standard based infrastructure.
There was Accidental Architecture or Silo Oriented Architecture before SOA architecture. It has the attributes, given below-
  1. Rigid
  2. Complex
  3. Expensive
  4. Slow to market
  5. Monolithic
  6. Hard to Integrate

The  Most important SOA concepts

  1. Services
  2. Self-describing interfaces with coarse granulation
  3. Exchange of messages.
  4. Support for Synchronous and Asynchronous communication
  5. Loose coupling
  6. Service Registration
  7. Quality of Service
  8. Composition of Services into Business Process.

SOA Implementation Technique

  • Service Implementation-
  1. By using various programming languages.
  2. Web services implementation.
  3. Non-Web Services; Legacy via Adaptors.
  4. Data Services
  • Message Exchange,
  1. XML Schema
  • Self-Describing Interface-WSDL
  • Communication of services and management.
  • Presentation
Basic figure of SOA architecture is given below-
 
 

Security Points with SOA

The security points, given below should be implementted for the better SOA oritented Application- 
  • Authenticate Users - Presentation Layer Level
  • FireWall -  Presentation Layer Level
  • On Web Server Level (Service Layer) - Authorizing the users, handling exception
  • On Application Server Layer (Business Layer) - Auditing, logging activity and transaction
  • Database Server Level (Data Access Layer) - Encrypt or hashing the sensitive data

SOA Architecture Layer Technologies

  • Resources-
  1. Operation Resources. e.g. CRM, ERP, database.
  2. Enterprise Components or Technologies. e.g. Java, .NET, CORBA, PHP
  • Services-
  1. Select component, which has been developed as Services
  2. Can implement various ways. e.g. Web Services
  3. Normally, it has a well defined interface. e.g. WSDL

Conclusion

Thus, SOA provides the enterprise application framework with the flexibility to make the change to a distributed system with the same or different technologies. It removes a centralized model, the dumb terminal, the fat client talking to the back-end and the database, presentation, business logic and Data Model Processing logic in client Application etc.