Services are generally created from scratch or are formed from existing services. One of the key concepts of SOA is the creation of composite services.
SOA facilitates reuse of existing services to provide complex services, thereby avoiding redundancy of a particular service.
Consider an educational institute with these existing services -
- Given a minimum aggregate score, a list of all student IDs is generated
- Given a student ID, the students name is generated
- Given a department name, a set of all Student IDs belonging to that department is returned
Now consider the demand for two additional services -
- Given a minimum aggregate score, a list of all student names is needed
- Given a particular department, a list of all student names is to be generated
The required services can be obtained from existing services as follows -
- From the first service, a list of student IDs is generated and each ID is fed to the second service to obtain the composite service
- Similarly, the next composite service is obtained by obtaining the student list from the third service and feeding them to the second service