What is Oracle Service Bus ?
Oracle Service Bus is member of Oracle Fusion Middleware family of products. This tool is primarily used for routing purpose and act as proxy layer for business logic i.e. used to encapsulate business logic.
Difference between SOA Suite and Service Bus
|Oracle SOA Suite||Oracle Service Bus|
|It is state full tool i.e. it store all the states to database where we can track the whole flow.||It is stateless tool i.e. It does not store state and out of box there is no concept of Instances to track the flow.|
|Used mainly for Business logic||Used mainly for Routing|
|Take long time for processing as it is state full tool||Take less time for processing as it is stateless tool|
|Mainly used for long running processes||Primarily used for synchronous scenario’s|
|Used for critical transaction where we can’t afford to lose a message||Used for less critical transactions as it is stateless and we can’t recover the message|
|Does not have pre-defined variables and we need to create our own variables||Has pre-defined context variable and we can also create custom variables|
|Used when human intervention required||Human intervention not supported|
|Out Of Box Debugging not exist||We can debug OSB project through Eclipse IDE|
Advantage and Features of Oracle Service Bus
1. Service Virtualization: OSB act as proxy layer and provide service virtualization i.e. it helps to insulate service infrastructure details from service consumer.
2. Loose Coupling: OSB acts as a middle layer between Service Provider and Consumer and helps service provider and consumer to connect with each other loosely. In the absence of OSB Service consumer and provider creates dependency to each other i.e. if some changes being made in Service consumer, that has direct impact on service provider and vice versa.
3. Location Transparency and Service Pooling: Location transparency says that service consumer never know about service provider physical location. We can add more one service providers and OSB uses service pooling concept to get the details from provider.
4. Backward Compatibility: OSB can used to connect to with latest applications as well as legacy applications.
5. Content Based Routing: OSB provide the capability to route the message to different target systems based on content.
6. Service Callout: OSB provide Service callout feature where we can call any external synchronous service in-between the flow to enrich request message.
7. REST Support: OSB provide REST support, we can create and Invoke REST services in OSB.
8. Throttling: OSB has throttling feature where we can control the number of messages that we need to send to target.
9. Service Result Caching: OSB provide caching feature where we cache the service response in case of static scenario’s and use that for upcoming requests.
10. Monitoring and Reporting: OSB has out of box monitoring where we can monitor our server and services.
11. High Performance: OSB is stateless & light weight; hence provide the excellent performance result under stress conditions as well.
12. Alerts: OSB has two types of alerts Pipeline and SLA alerts. Pipelines alerts are used in message flow either in main flow or error handler to alert someone, SLA alerts are used to alert someone once Service Level agreements get violated.
13. Easy Development: We can OSB development by two ways, either by SB console or by Eclipse. SB console is a light weight console and Eclipse is a IDE tool that has some extra features like Debugging, Design time Xquery etc.