When to use OSB:
- Endpoint routing (providing location transparency) so that we do not care about the physical location of the endpoint.
- Endpoint abstraction (interface transparency) so that we do not care about the exact data formats required by the endpoint because the OSB will take care of transformations.
- Load balancing so that we do not care about which of multiple service implementations will actually service a request.
- Throttling so that we do not care about how use of services is restricted.
- Enrichment so that we do not care about how additional data is provided to the request to match the expected request and response formats.
- Simple synchronous composition so that we do not care if our abstract service call is actually made up of two or more physical service calls.
- Protocol conversion so that we do not care what physical transports are being used.
- Sync/async abstraction so that we can treat services as fire and forget or query response according to the needs of the client.