• Save
Where and when to use the Oracle Service Bus (OSB)
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Where and when to use the Oracle Service Bus (OSB)

on

  • 21,301 views

The Oracle Service Bus (OSB) is part of the Oracle SOA Suite 11g and stands in the center of modern process- and integration-solutions. The lightweight, stateless and high-performant architcture of ...

The Oracle Service Bus (OSB) is part of the Oracle SOA Suite 11g and stands in the center of modern process- and integration-solutions. The lightweight, stateless and high-performant architcture of the OSB turns it into an excellent tool for doing transformation and routing of messages. This presentation explains where and when the usage of the OSB makes sense but also shows the limits of the OSB.

Statistics

Views

Total Views
21,301
Views on SlideShare
20,888
Embed Views
413

Actions

Likes
54
Downloads
0
Comments
4

8 Embeds 413

http://nitinaggarwal.wordpress.com 252
https://twitter.com 76
http://sreekarblog.wordpress.com 57
http://jmmiddleware.wordpress.com 15
http://eventifier.co 8
http://www.pinterest.com 3
https://www.linkedin.com 1
https://nitinaggarwal.wordpress.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Hi Guido,
    I'm currently working for Time Inc. as a java developer. I got an offer from Oracle to work in middleware development with technologies like Oracle Service Bus. Since I know very little about this technology, I'm a little confused about the scope and opportunities in this field. I'd appreciate it if you can guide me with this decision.
    Are you sure you want to
    Your message goes here
    Processing…
  • Hi Guido,
    I'm currently working for Time Inc. as a java developer. I got an offer from Oracle to work in middleware development with technologies like Oracle Service Bus. Since I know very little about this technology, I'm a little confused about the scope and opportunities in this field. I'd appreciate it if you can guide me with this decision.
    Are you sure you want to
    Your message goes here
    Processing…
  • Hello glad to see your greeting Might help me know what is the maximum size that can process messaging OSB, and tps that supports the application if many courier.

    greetings.
    Are you sure you want to
    Your message goes here
    Processing…
  • Hi sir,PPt is very interesting.I would like to Go through this presentation...could ou please share this video with audio...to mavillapalli.lakshmiprasanna@gmail.com
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Where and when to use the Oracle Service Bus (OSB) Presentation Transcript

  • 1. WELCOME Where and When should I use the Oracle Service Bus (OSB) Guido Schmutz UKOUG Conference 2012 04.12.2012BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 2012 © Trivadis 1 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 2. Guido Schmutz• Working for Trivadis for more than 15 years• Oracle ACE Director for Fusion Middleware and SOA• Co-Author of different books• Consultant, Trainer Software Architect for Java, Oracle, SOA and EDA• Member of Trivadis Architecture Board• Technology Manager @ Trivadis• More than 20 years of software development experience• Contact: guido.schmutz@trivadis.com• Blog: http://guidoschmutz.wordpress.com• Twitter: gschmutz 2012 © Trivadis2 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 3. Agenda1. Oracle Service Bus and Oracle SOA Suite2. Using the Oracle Service Bus3. Bad Practices4. Summary 2012 © Trivadis3 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 4. Oracle Fusion MiddlewareApplicationsMiddlewareDatabaseInfrastructure &Management 2012 © Trivadis4 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 5. SOA Integration Suite POLICY DESIGN MANAGER EM CEP BAM BPEL PROCESS MGR BUSINESS RULES HUMAN WORKFLOW SERVICE BUS Lifecycle ORACLE SERVICE BUS Governance DATA INTEGRATOR ERP MAINFRAME SERVICES DB PARTNERS EVENTS Adapters & B2B 2012 © Trivadis5 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 6. OSB vs. Mediator vs. BPEL Value Mapping Cross-Reference Tables (XREFs) Message Validation (Schematron) EDN Rule-engine for routing Resubmit Process State/ Instance Monitoring JDeveloper SCA Support Mediator 11g Long running Process Orchestration Fault Management Framework Message Ordering Unit Test Framework Human Workflow Security Strong typing (XSD) Decision Service XA Support BPEL/ Message Filter BPMN Message Validation (XSD) Asynchronous Messaging Pattern Service Data Object (SDO) Message Transformation (XSLT) Adapter Framework (JCA) Split-Join Compensation Parallel Processing Message Routing Reliable Messaging Service Types and Transport Sensors Graphical Flow Design Service Pooling (Load Balancing) XQuery Transformation Message Throttling Result Set Caching REST Support Web Console Eclipse IDE OSB Graphical Debugger SLA Alert Rule 2012 © Trivadis6 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 7. Oracle Service Bus - Key Capabilities Scalability and Agility Performance Oracle Service Bus Rapid Service Complete, Open Enablement & Integrated 2012 © Trivadis7 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 8. Oracle Service Bus - Key ComponentsProxy Service• Contains the message processing logic for handling the request and the optional response message• Interface that the service consumer callsBusiness Service• Wraps the external systems the OSB calls Proxy Service T1 PipelineHTTP/SOAP HTTP/ WSDL Business SOAP External WSDL T2 Pipeline Service Service OSB 2012 © Trivadis8 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 9. Service Virtualization• Create additional agility by replacing direct coupling and providing a virtual endpoint for the consumer, with the following benefit • Support of different message formats • Move of endpoints Service SOAP Service • Service versioning Consumer Provider • Better availability and scalability • Security • … Proxy Service SOAP Routing Service SOAP WSDL Business Service WSDL Consumer Agility Service Provider OSB 2012 © Trivadis9 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 10. Agenda1. Oracle Service Bus and Oracle SOA Suite2. Using the Oracle Service Bus3. Bad Practices4. Summary 2012 © Trivadis10 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 11. Message TransformationRequirement• Different message format of inbound/outbound messagesSolution• Use a Replace action with an XQuery / XSLT script• XQuery is a very efficient way to transform messages Proxy ServiceHTTP/ RoutingSOAP HTTP/ WSDL Replace Business SOAP External WSDL Service Service Replace XQuery XSLT OSB 2012 © Trivadis11 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 12. RoutingRequirement• Efficiently route a message to one or another external serviceSolution• Use a Conditional Branch or a Routing Table instead of a single Routing action• Pass routing criteria through headers if complex decisions involved (let the consumer do the business logic instead of programming it into the OSB flow) • Header based routing is more efficient if payload does not have to be touched at all Proxy Service HTTP/HTTP/ Business SOAP External RoutingSOAP Service Service 1 HTTP/ Business SOAP External Routing Service Service 2 OSB 2012 © Trivadis12 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 13. Dynamic RoutingRequirement• Dynamically route a message to a service not known at development timeSolution• Use a Dynamic Routing to dynamically invoke a different business service• Set the Endpoint URI used on the business service dynamically through the Routing Options action • All external services should implement the same contract Proxy Service HTTP/ HTTP/ SOAP SOAP Routing External Business Service 1 Routing Options Service External HTTP/ Service 2 SOAP OSB 2012 © Trivadis13 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 14. Message Enrichment - Service CalloutRequirement• Have to enrich a message before/after routing it to the primary serviceSolution• Use a Service Callout action either in the request/response flow of the Routing action HTTP/ Business SOAP External WSDL Proxy Service Service ServiceHTTP/ RoutingSOAP HTTP/ WSDL Service Business SOAP Primary External WSDL Callout Service Service OSB 2012 © Trivadis14 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 15. Service-PoolingRequirement• Make link between consumer and service provider more reliableSolution• Use Service Pooling of OSB to handle short interruptions (network/service)• Number of retries and the time to wait can be configured 1 Proxy Business Service Service after 2s External Service 2 OSB 5x 2012 © Trivadis15 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 16. OSB USPService-PoolingRequirement• Increase Scalability and Availability of a given serviceSolution• Use Service Pooling to link to multiple instances of a given service • Offers load balancing algorithms such as round-robin, random, random-weighted • If a URI is non-responsive, take the URI out of the pool • Bring the URI back in the pool when it is back-up External Service Business Instance 1 Proxy Service Service Instance 2OSB Instance 3 2012 © Trivadis16 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 17. OSB USPService Result CachingRequirement• Handle a lot of read-only calls to a system with limited capacitySolution• Use 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 Proxy Business 1 External Service Service Service 2 3 Result Cache OSB 2012 © Trivadis17 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 18. OSB USPMessage ThrottlingRequirement• Make sure to not overload a system by sending too many messagesSolution• Using Message Throttling feature of the Oracle Service Bus Message Buffer SOAP Proxy Business Service ServiceConsumer Service Service Provider OSB 2012 © Trivadis18 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 19. OSB USPSLA Alert RulesRequirement• 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 on any other “more complex” service HTTP/ Proxy Service HTTP/ SOAP Business External WSDL SOAP WSDL Routing Service ServiceSLA Alert Rule SLA Alert Rule OSB 2012 © Trivadis20 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 20. OSB USPReliable Message ProcessingRequirement• Have to make sure that a message is processed. If not, either retry or store it in an error areaSolution• 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 Inbound Proxy Business Request JMS JMS Queue Service Service Queue Error OSB Queue 2012 © Trivadis21 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 21. OSB USPSplit-JoinRequirement• Process a large message with many sub-items as quick as possibleSolution• 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 Request Response Payload Oracle Service Bus Payload ProcessOrder Split ForEach 15 Join ProcessOrder SPLIT JOIN Order 1 Order 2 Order 3 Response Response Response 1 2 3 2012 © Trivadis22 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 22. OSB USPIntegrate with Legacy SystemsRequirement• Reuse existing legacy functionality and make it available as a Web ServiceSolution• Use the JCA adapter to integrate the legacy systems through the SOA Suite technology adapters, • such as the AQ, Database, File and FTP adapters / EJB, JMS, File, FTP Transport SOAP Proxy Business Database WSDL JCA Client Service Service DB Adapter OSB Request SOAP Proxy Business Queue External WSDL JMS Client Service Service System Request Queue OSB 2012 © Trivadis23 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 23. Directly use existing Java functionalityRequirement• Make existing EJB functionality available as a Web ServiceSolution• Use the EJB transport to access the EJB and expose through a WSDL based proxy service• Transaction propagataion EJB Session EJB Client Bean SOAP Proxy Business EJB Session WSDL JEJB Client Service Service Bean OSB 2012 © Trivadis24 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 24. OSB USPDecouple EJB based systems with JEJB Transport EJB Session EJB Client BeanRequirement• An existing system consists of a lot of EJB components which are strongly coupledSolution• Use the JEJB transport on both ends of the OSB to decouple EJB consumer form the EJB provider• Optionally change the request and/or response message Proxy Business EJB Session JEJB EJB Client JEJB Service Service Bean OSB 2012 © Trivadis25 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 25. OSB USPExpose a SOAP Web Service with a RESTful interfaceRequirement• Need to expose a given functionality through a RESTful interfaceSolution• 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 Proxy Service RESTful Routing Business SOAP/HTTP WSDL HTTP SOAP service Service Routing OSB 2012 © Trivadis26 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 26. OSB USPRESTful Services on OSBRequirement• Need to decouple RESTful client from its RESTful service providerSolution• Use a pass-through service with the HTTP HTTP/ Proxy Service HTTP/ REST Business REST RESTful HTTP HTTP Routing Service Service OSB 2012 © Trivadis27 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 27. Agenda1. Oracle Service Bus and Oracle SOA Suite2. Using the Oracle Service Bus3. Bad Practices4. Summary 2012 © Trivadis28 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 28. Bad Practice – „Complex“ Service OrchestrationProblem• Calling multiple Web Services through a chain of Service Callout„s (all sync)• If one service call fails, a rollback of the others might be necessary, but we are not in a global transactionAlternative• Use BPEL or BPMN with the built-in compensation handling functionality HTTP/ Proxy Service Business SOAP WSDL Web Service Service Service Callout t HTTP/ Service Business SOAP WSDL HTTP/ Callout Web Service Service SOAP Service WSDL Callout HTTP/ Business SOAP WSDL Web Service Service OSB 2012 © Trivadis29 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 29. Bad Practice – Complex Business Logic in Proxy Message FlowProblem• Complex business logic is implemented in OSB through a combination of loops, conditions, expressions and XQuery scriptsAlternative• Externalize complex business logic into a “real” service or into a Business Rule Engine • invoke it as a service from the OSB Proxy Service HTTP/ SOAP WSDL HTTP/ Business SOAP WSDL R R Web Service Service OSB 2012 © Trivadis30 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 30. Bad Practice – Java Callout invoking business logicProblem• The Java Callout action is used to invoke business logic wrapped in a JARAlternative• Implement this logic as a “real” service and invoke it from the OSB through a business service • Either as an Java Web Service or as an EJB session bean through the EJB transport JAR Proxy ServiceHTTP/ RoutingSOAP HTTP/ Business Primary External SOAP SOAP Java Callout SAOP Service Service OSB 2012 © Trivadis31 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 31. Bad Practice – Batch processingProblem• 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 databaseAlternative• Use a traditional data integration solution such as Oracle Data Integrator DB Proxy Business DB JCA JCA DB DB Adapter Service Service Adapter OSB10„000s ofrecords 2012 © Trivadis 32 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 32. Agenda1. Oracle Service Bus and Oracle SOA Suite2. Using the Oracle Service Bus3. Bad Practices4. Summary 2012 © Trivadis33 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 33. Oracle SOA Platform 2012 © Trivadis34 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 34. OSB vs. Mediator vs. BPEL Value Mapping Cross-Reference Tables (XREFs) Message Validation (Schematron) EDN Rule-engine for routing Resubmit Process State/ Instance Monitoring JDeveloper SCA Support Mediator 11g Long running Process Orchestration Fault Management Framework Message Ordering Unit Test Framework Human Workflow Security Strong typing (XSD) Decision Service XA Support BPEL/ Message Filter BPMN Message Validation (XSD) Asynchronous Messaging Pattern Service Data Object (SDO) Message Transformation (XSLT) Adapter Framework (JCA) Split-Join Compensation Parallel Processing Message Routing Reliable Messaging Service Types and Transport Sensors Graphical Flow Design Service Pooling (Load Balancing) XQuery Transformation Message Throttling Result Set Caching REST Support Web Console Eclipse IDE OSB Graphical Debugger SLA Alert Rule 2012 © Trivadis35 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 35. Oracle Service Bus vs. Mediator componentMediator Oracle Service Bus• Loosely coupling inside SOA composite • Service virtualization• Intra composite • Decoupling of SOA domains• Event Delivery Network • Only entry point for external system• Domain Value Maps • powerful, standalone ESB• Cross Referencing • Service Level Agreements • Message-oriented solutions • Integration of legacy systems 2012 © Trivadis36 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 36. Summary Partner Partner Application Application (PA) (PA) SAP System (SAP) SAP Email Server FTP Server Oracle Service Bus (OSB) SOAP FTP SAP Bus Mailhost FTP Exposed Direct Connection (Exposed-ESB) Native SAP SOAP SMTP POP3/IMAP Native Validation Filter Transformation Oracle Service Bus (OSB) Direct Connection, Broker, Router (ESB) Value Mapping Enrichment Routing Database Database FTP SOAP JMS CSV CSV SOAP Rule Engine SOA Domäne 1 SOA Domäne 2 Backend Mediator/BPEL/BPMN JMS Application (BA) Rules ESB Application Oracle SQL Server CSV CSV XLS Basic Service Interaction Human BPEL Rules Oracle Application Oracle Population and Synchronization (Bulk ESB) Oracle Data Integrator (ODI) 2012 © Trivadis37 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 37. Summary• Use the Oracle Service Bus for Service Virtualization• Use the Oracle Service Bus for Message-Oriented Solutions• Do not use it to implement service business logic• Do not use it to implement process logic (technical integration processes and/or business processes)• Do not use it to implement batch processing logic 2012 © Trivadis38 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012
  • 38. Thank You! Trivadis AG Guido Schmutz guido.schmutz@trivadis.comBASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIENFive Cool use cases for the Spring component of the Oracle SOA SuiteMonday 3th December at 11:50 - 12:35 - Executive 7NoSQL Databases for Implementing Data Services – Should I Care?Tuesday 4th December at 15:10 - 16:10 - Hall 10a 2012 © Trivadis 39 Where and When should I use the Oracle Service Bus (OSB) 14.06.2012