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,
- Separation of Service interface from underlying implementation (Loose Coupling).
- Promotes the Service reuse through discoverable and self-describing Service.
- 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-
- Rigid
- Complex
- Expensive
- Slow to market
- Monolithic
- Hard to Integrate
The Most important SOA concepts
- Services
- Self-describing interfaces with coarse granulation
- Exchange of messages.
- Support for Synchronous and Asynchronous communication
- Loose coupling
- Service Registration
- Quality of Service
- Composition of Services into Business Process.
SOA Implementation Technique
- By using various programming languages.
- Web services implementation.
- Non-Web Services; Legacy via Adaptors.
- Data Services
- 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
- Operation Resources. e.g. CRM, ERP, database.
- Enterprise Components or Technologies. e.g. Java, .NET, CORBA, PHP
- Select component, which has been developed as Services
- Can implement various ways. e.g. Web Services
- 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.