REMINDER Check in on the COLLABORATE mobile app
Oracle Service Bus: - When to use, where to use and when not to use
Prepared by:
Abhay Kumar Senior Consultant AST Corporation
Session ID#: 244
Specialized. Recognized. Preferred.
The right partner makes all the difference.
Our Services Oracle Partnership Oracle Specialized
• E-Business Suite
• Business Intelligence/EPM
• Fusion Middleware
• CRM
• Managed Services
• Oracle University
• Project Advisory Services
• Oracle Platinum Partner
• Pillar Partner
• SOA
• Business Intelligence
• Hyperion
• Oracle University Approved Education Center
• Oracle University Reseller
• Oracle Accelerator Implementer
• Certified OnDemand Implementer
• Small Business Strategy Council
• EBS Financial Management
• EBS Supply Chain Management
• EBS Human Capital Management
• BI Applications
• BI Foundation
• Hyperion Planning
• Service Oriented Architecture
• Application Development Framework
• Database
• Public Sector
Oracle Excellence/Titan
Award Winner 2013, 2011 & 2009 2011 Inc. Top Small
Company Workplaces 2013, 2012 Inc. 5000
Fastest Growing Companies 2012 Best & Brightest Companies to Work For
Abhay Kumar
■ Work for Application Software Technology, Naperville Illinois
■ 8+ Years of Experience in Oracle Middleware Technologies
■ Oracle IDM and SOA Certified Professional
■ Worked for Clients such as
▪ Los Angeles Metropolitan Authority, LA
▪ Tri Metropolitan Transit Authority , Oregon
▪ Greater Orlando Airport Authority, Florida
Introduction of Oracle Service Bus aka OSB
This is a subtitle or bulleted list
Quick Poll
■ How many of you know Oracle SOA Suite ?
■ How many of you have used Oracle Service Bus ?
■ How many of you are aware of Oracle Service Bus ?
■ How may of you are new to Oracle Service Bus ?
Oracle Service Bus Quick Introduction
■ It is a lightweight integration Enterprise service bus.
(ESB)
■ It is designed to connect, mediate and manage interactions among diversified services.
■ Provides Loose Coupling, Service Virtualization, Service Pooling and Throttling.
■ Provides Service Aggregation, Location Transparency
■ Works on VETRO Pattern viz Validate, Enrich, Design , Transform , Route and Operate.
■ Oracle Service bus is an integral part of Oracle SOA
Suite.
Place of OSB in Oracle SOA Suite
Oracle Service Bus Features
Components of OSB
■ Proxy Service
• Request Pipeline handles request
• Response Pipeline and Error Pipeline – handles response and error
■ Business Service
• Talks to Service Provider
Enable Loose Coupling
■ Enable loose Coupling by eliminating
Point to Point Connection
Location Transparency
■ Provide a virtual endpoint to the Service Consumer.
■ Shield the changes of service provider from the service consumer.
▪ Modify Service Endpoints at runtime
▪ Provide Multiple Endpoints
Static Routing
■ Route the messages from Service Consumer to one or more Service Providers based on the content of the messages.
■ Use conditional branching, operational branching, dynamic routing or a routing table to evaluate which business service is to be called.
■ Supported types of routing are operation based, content/payload based and header based.
Dynamic Routing
■ Route the messages from Service Consumer to one or more Service Providers which is not know at design time.
■ Use Business Rules to determine the destination service.
■ Modify the endpoint URI of the business service by using the Routing Options. All the service provider must implement the same contract.
Message Transformation
■ Transform the message formats from Text to XML by using Message Format Language.
■ Transform messages to XML format using XQuery and XSLT.
■ OSB supports XQuery Mapper tool.
■ Read XML messages and write them as binary Messages.
Message Enrichment
■ Make a call to another service provider to update the request message..
■ Use the service callout feature.
Protocol Transport Switching
■ Allow multiple protocol/messages to participate in the service bus.
■ OSB supports various types of protocol like SOAP,JMS,FTP, FILE,EMAIL,HTTP
Support Multiple Versions Simultaneously
■ Enable Backward Compatibility by supporting multiple
versions and isolating changes to service contract .
Service Result Caching
■ Externally invoked service returns results which are reasonably static.
■ Setup Service Result Caching to reduce load on the backend system and increase the response time.
■ It user in memory data grid solution from oracle coherence.
■ Monitor the service result cache hit ratio.
Traffic Management – Throttling and Prioritization
■ Restrict the message flow to a service provider.
■ Limit the number of messages which will be processed concurrently by the business service.
■ The messages are stored in a queue.
■ Additionally define SLA alert rule based on throttling metrics.
Service Endpoint Management- Service Pooling
■ Increases the availability and reliability of service providers by retrying errors like temporary network glitches.
■ Configure the number of times a service can be retried and at what interval.
Service Endpoint Management- Load Balancing
■ Makes service providers more highly available and scalable.
■ In absence of a external load balancer make use of Business service load balancer.
■ Marks the endpoint as offline and no further requests are sent to that url.
■ Make use of different Load Balancing algorithm like round robin, random, random weighted etc.
Parallel Processing - Split Joins
■ A service payload, which has individual messages needs to processed concurrently instead of sequentially.
■ Static split join , the number of service providers to be called is known at design time.
■ Dynamic split join, the number of times a service provider is to be called is calculated at runtime.
■ Collect the responses from service provider and aggregates it.
Expose Legacy Applications as Webservice
■ Expose the legacy applications as webservice by using the adapters from OSB
■ For example use JCA adapters to connect to Database, Advanced Queues, EJB .
■ Additionally make your service secure by using OWSM security at your Proxy Service.
Message Reliability using JMS
■ Use weblogic jms to use minimize the loss of message.
■ Configure the retries and delivery failure mechanism on the weblogic jms queue.
■ Sequence the message using unit of work and unit of order.
■ If the service provider is down the message can be retried later.
Native Java Support
■ Expose the existing JAVA EJB as a webservice from OSB to leverage monitoring, alerting and reporting capabilities.
■ Use JEJB transport to propagate the transaction and security context
SLA Monitoring and Alerting
■ Provides a lightweight framework for monitoring the statistics like response time, execution time and sends out alerts.
■ Define the condition and set up alert destinations like email, SNMP,JMS. etc. You can also view it on the OSB Dashboard.
■ BAM can be integrated with OSB for alert viewing.
Bad Practices
This is a subtitle or bulleted list
Long Running Stateful Process
■ OSB is not meant for stateful processes
■ Process which run for long time, like leave application programs
■ The flow may sit for approvals for days.
Solution:
Use BPEL and BPMN
Complexity in Orchestration
■ To many conditions in the flow.
■ Chaining of services by using too many Service Callouts.
Solution:
Use BPEL and BPMN
Manual Intervention or Human Task
■ OSB is not meant for business processes that human workflow tasks.
■ Not to be used where the error requires a manual intervention.
Solution:
Use BPEL and BPM both support human approval tasks.
Correlation
■ When the external web service called doesn't have WS- Addressing capability
■ When the message travels through several services and
response is solicited by the initial service from the last service directly
For instance, request flow asynchronously pro1 -> pro2 ->
pro3 and response is received from pro3 ->pro1.
Solution:
Use BPEL and create correlation sets.
Calling JAVA Jar files with business logic
■ Do not use JAVA Callout from OSB to call jar files with business logic.
■ Do not try to control threads from jar files which are called from OSB by using java callout.
■ Use Java callout for transformations.
Solution:
Expose the business logic as a webservice and call that from OSB.
Bulk or Batch Data Movement
■ Do not use OSB for moving huge data using JCA like moving bulk data from one database to use database.
■ Use Streaming option in OSB if moving huge files, this does not allow the files to be manipulated.
Solution:
Use Tools like Oracle Data Integrator.
Execute SQLS
■ Do not execute heavy SQL s directly from OSB using fn- bea:execute-sql($datasource,$sql…..) command.
■ Should only be used to look up name value pair.
■ If the result set is huge the performance goes down.
Solution:
Use JCA Adapters. Create Database Adapters in Jdeveloper and use them in OSB
Reference
http://docs.oracle.com/cd/E17904_01/doc.1111/e15017/overview.
htm
http://www.oracle.com/technetwork/middleware/soasuite/learnmo
re/where-and-when-to-use-osb-1885528.pdf
Questions
Please complete the session evaluation
Session ID: 244
We appreciate your feedback and insight
You may complete the session evaluation either on paper or online via the mobile app