Service-Oriented Architecture Examples
Service-oriented architecture is a method of software development that uses software components called services to create business applications. Each service provides a business capability, and services can also communicate with each other across platforms and languages. Developers use SOA to reuse services in different systems or combine several independent services to perform complex tasks.
Service-oriented architecture
Advantages
Service reusability: In SOA, applications are made from existing services. Thus, services can be reused to make many applications.
Easy maintenance: As services are independent of each other they can be updated and modified easily without affecting other services.
Platform independent: SOA allows making a complex application by combining services picked from different sources, independent of the platform.
Availability: SOA facilities are easily available to anyone on request.
Reliability: SOA applications are more reliable because it is easy to debug small services rather than huge codes.
Scalability: Services can run on different servers within an environment, this increases scalability.
Disadvantages
High overhead: A validation of input parameters of services is done whenever services interact this decreases performance as it increases load and response time.
High investment: A huge initial investment is required for SOA.
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.
Benefits
Faster time to market
Developers reuse services across different business processes to save time and costs. They can assemble applications much faster with SOA than by writing code and performing integrations from scratch.
Efficient maintenance
It’s easier to create, update, and debug small services than large code blocks in monolithic applications. Modifying any service in SOA does not impact the overall functionality of the business process.
Greater adaptability
You can modernize your applications efficiently and cost effectively. healthcare organizations can use the functionality of older electronic health record systems in newer cloud-based applications.
Basic principles
Interoperability
Each service in SOA includes description documents that specify the functionality of the service and the related terms and conditions. Client system can run a service, regardless of the underlying platform or programming language.
Loose coupling
Services in SOA should be loosely coupled, having as little dependency as possible on external resources such as data models or information systems. They should also be stateless without retaining any information from past sessions or transactions.
Granularity
Services in SOA should have an appropriate size and scope, ideally packing one discrete business function per service. Developers can then use multiple services to create a composite service for performing complex operations.
Conclusion
Service-oriented architecture implemented with SOAP-based web services requires more rigid and formal service definitions than RESTful web services or microservices.