What is the difference between service orchestration and aggregation? In a similar post on SO, someone mentioned that there is a thin line between these two terms. Would it be possible to get more details about this thin line? Also, what is service augmentation and how does it relate two the other two concepts.
Difference between service orchestration, service aggregation and service augmentation
3.7k views Asked by Andrei AtThere are 2 answers
Service aggregation is the subject of combining component services to build a component service. It has several steps like:
- Fininding published services
- Combining them
- Data and control flow over component services
- Dynamic composition of component services
- Assessment of composite services
- Retaining a context-aware environment for composite services
- ...
One sub-task of service aggregation is to obtain the data&control flow over the component services. Just as a rough simplification, one can assume that it is the order of execution of component services, and the data that should be exchanged between them, to build a composite service. There are two ways to implement data&control flow: orchestration and choreography. The first one, which was the topic of this question, has a central controling unit. In the second one, there is no single owner of the flow, and it is obtained by negotiation between the component services. In conclussion, I would say service orchestration is a sub-task of service aggregation.
Service orchestration is the coordination or integration of several services to expose it as a single service.
Tool: Oracle Bpel, for example.
Service aggregation act as a facade over the lower level services, hiding technical details and interrelationship from the service consumer.
Service aggregation adds alot of value to the overall system by providing a higher level of abstraction. Tool: Oracle Service Bus (OSB-Proxy Services), for example.
Service Augmentantion is used within a service for message enrichment. Suppose that based on client id you need to obtain additional data, like address, email or phone, you should augment message using database queries, etc..