Our Services Who are We Specialized. Recognized. Preferred. The right partner makes all the difference. Oracle Partnership Oracle Specialized E-Business Suite Business Intelligence EPM-Hyperion Fusion Middleware 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 Service-Oriented Architecture Public Sector Oracle Titan Award Winner 2011 & 2009 2011 Inc. Top Small Company Workplaces 2012 Inc. 5000 Fastest Growing Companies 2012 Best & Brightest Companies to Work For
Win a $25 Gift Card! Drop off your business card after today s presentation
Agenda Oracle Service Bus and Oracle SOA Suite Using the Oracle Service Bus Bad Practices Summary Q & A 3
Oracle Fusion Middleware WebLogic 10.3.6 4
SOA Integration Suite 5
Key Ingredients of Oracle Service Bus 6
Oracle Service Bus Key Capabilities 7
Agenda Oracle Service Bus and Oracle SOA Suite Using the Oracle Service Bus Bad Practices Summary Q & A 8
Oracle Service Bus- Key Components Proxy Service Contains the message processing logic for handling the request and the optional response message. Interface the service consumer calls. Business Service Wraps the external system the OSB calls. 9
Create additional agility by replacing direct coupling and providing a virtual endpoint for the consumer, with the following benefits: Support of different message formats Move of endpoints Service Versioning Better availability and scalability Security Service Virtualization 10
Requirement Different Message Format of inbound /outbound messages. Solution Message Transformation Use a replace action with an XQuery and XSLT script Xquery is a very efficient way of transforming messages. 11
Requirement Efficiently route a message to one or another external message Solution Routing Use a Conditional Branch or Routing Table instead of single routing action. Pass routing criteria through headers if complex decisions involved (let the consumer do the business logic instead of programming it into OSB flow. Header based routing is more efficient if payload does not have to touched at all. 12
Dynamic Routing Requirement Solution - Dynamically route a message to a service not known at development time. - Use Dynamic Routing to dynamically invoke a different business service through the Routing Options action. - Use Routing options to override the uri at runtime. All the external services should implement the same contract. 13
Message Enrichment- Service Callout Requirement Have to enrich a message before/after routing it to the primary service Solution Use a Service Callout action either in the request /response flow of Routing Action or in Request/Response pipeline. 14
Requirement Make link between consumer and service provider more reliable. Solution Service Pooling Use a Service Pooling of OSB to handle short interruptions (network/service). Number of retries and the time to wait can be configured. 15
Requirement Service Pooling Increase Scalability and Availability of a given service. Solution Use a Service Pooling to link to multiple instances of a given service. Offers load balancing algorithm such as round robin, random, random weighted. If a URI is non responsive, take the URI out of pool. Bring the URI back in pool when it is back up. 16
Requirement Service Result Caching Handle a lot of read of only calls to a system with a limited capacity. Solution Use a Result Caching to cache the information on the oracle service bus. Tune the Expiration Time settings to make sure the information is updated from time to time. 17
Requirement Message Throttling Make sure to not overload a system by sending too many messages. Solution Use a Message Throttling feature of Oracle Service Bus. 18
SLA Alert Rules Requirement Need a low overhead way to measure Service Level Agreements(SLAs). Solution Use the SLA Alert Rules of the OSB monitoring framework to measure. Min/Max response Time,message count,error count Can be added to a simple pass through service with minimal overhead or any other more complex service. 19
Reliable Message Processing Requirement Have a requirement to make sure that a message is processed. If not, either retry or store it in an error area. Solution Use the JMS Transport and integrate the OSB flow in a global transaction. Configure retry and error behavior on the inbound queue or on the proxy service. 20
Requirement Split Join Process a large message with many sub items as quick as possible. Solution Use a Split Join to split the large message into many smaller messages and handle them in parallel. Aggregate the results into one large response message. 21
Integrate With Legacy Systems Requirement Reuse existing legacy functionality and make it available as a web service. Solution Use the JCA Adapter to integrate the legacy system through the SOA Suite technology adapter Such as AQ, database, File and FTP adapters/ejb, JMS, File, FTP Transport 22
Decouple EJB Based Systems with JEJB Transport Requirement An existing system consisting of a lot of EJB components which are strongly coupled. Solution Use the JEJB transport on both ends of the OSB to decouple EJB consumer from EJB provider. Optionally change the request and/or response message. 23
Expose a SOAP Web Service with a RESTful Service Requirement Need to expose a given functionality through a RESTful service. Solution Use the HTTP transport on the proxy service to accept RESTful calls. Map the HTTP methods GET/PUT/POST/DELETE to the SOAP operations using a conditional branch. 24
Enhanced Transport Features Email transport now supports email over SSL MQ Transport: Support XA, Certify 7.x Changes here include the XA Enabled property for MQ connection resources, The new XA Enabled environment property The Transaction Timeout property for the MQ proxy service configuration. JMS Transaction timeouts for JMS Proxy Client ID for JMS topic durable subscriptions. HTTP Session Stickiness and Sticky sesionid Name OWSM policy for non-soap services 25
Agenda Oracle Service Bus and Oracle SOA Suite Using the Oracle Service Bus Bad Practices Summary Q & A 26
Bad Practice Complex Service Orchestration Requirement Calling multiple Web Services through a chain of Service Callout s (all sync). If one service fails, a rollback of the others might be necessary, but we are not in global transaction. Solution Use BPEL or BPMN with the built in compensation handling functionality. 27
Bad Practice Complex Business Logic in Proxy Message Flow Requirement Complex business logic is implemented in OSB through a combination of loops, conditions, expressions and Xquery scripts. Alternative Externalize complex business logic into a real service or into a business rule engine and invoke it is a service from OSB. 28
Bad Practice Java Callout invoking business logic Requirement The java Callout action is used to invoke business logic wrapped in a JAR. Alternative Implement this logic as a real service and invoke it from OSB through a business service. Either as an Java Web service or as an EJB Session bean through the EJB transport. 29
Bad Practice Batch Processing Problem Using the OSB for batch processing. The DB adapter is used to read all the data from one database, passed through the OSB to update it on another database. Solution Use a traditional data integration solution such as Oracle Data Integrator. 30
Agenda Oracle Service Bus and Oracle SOA Suite Using the Oracle Service Bus Bad Practices Summary Q & A 31
Summary Use the Oracle Service Bus for Service Virtualization Use the Oracle Service Bus for Message Oriented Solution Do not use it to implement service business logic Do not use it to implement process logic (business process) Do not use it to implement batch processing logic Do not use it to implement long running process. 32
OSB vs. BPEL vs. MEDIATOR 33
THANK YOU Abhay Kumar akumar@astcorporation.com Ramdas Chakkungal rchakkungal@astcorporation.com