Successfully reported this slideshow.
Your SlideShare is downloading. ×

Where to use OSB

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 36 Ad

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

Similar to Where to use OSB (20)

Recently uploaded (20)

Advertisement

Where to use OSB

  1. 1. WHERE TO USE THE ORACLE SERVICE BUS ? OBUG Connect 24 April 2012 @ MECC Maastricht
  2. 2. Who ? Jan van Zoggel Edwin Biemond jvzoggel.wordpress.com biemond.blogspot.com J/E
  3. 3. Agenda  Overview  OSB & SOA Suite  Using the OSB  Bad Practices E
  4. 4. Enterprise Service Bus An ESB on its own is not a complete SOA solution, even though it is often marketed that way. Gartner/Burton Group 2007 E
  5. 5. How to use the OSB ? J
  6. 6. J
  7. 7. Agenda  Overview  OSB & SOA Suite  Using the OSB  Bad Practices E
  8. 8. Finance domain CRM domain Load balancing OSB Throthling OSB Dyn. Routing SLA / Endpoint Mediator Mediator intercomposite Mediator BR BPEL Mediator BPEL BPEL Mediator Mediator Mediator Mediator OSB SB Transports OSB OSB OSB BizApi WS FIN Application CRM Application E
  9. 9. Where to use Mediator ?  Loosely coupling of Oracle BPEL  Intra composite  EDN  Multi routing  Specific features:  MDS usage  Domain Value mapping  Xref (cross referencing ) support  Synchronous / Asynchronous Routing E
  10. 10. Where to use Oracle BPEL ?  Stateful  Long running processes (dehydration store)  Service Orchestration  Compensation  Fault framework  Business Rules & Human workflow J
  11. 11. Async Service in OSB  10g BPEL transport  11g SOA-direct transport E
  12. 12. Agenda  Overview  OSB & SOA Suite  Using the OSB  Bad Practices E
  13. 13. Using the OSB ?  High volume*  Caching  Stateless*  Load balancing  Security  Endpoint SLA  Transformation  Transports  Throttling  Routing J
  14. 14. Security  Use OWSM for 11g & 12c E
  15. 15. Transformation  XQuery  XSLT support  Java callout support for JSON, JEJB transport E
  16. 16. Control the workload Throttling  Limit requests on Business Service  Uses memory Queue, no failover  priority possible J
  17. 17. Control the workload Work Managers  Protect WebLogic Server (Max Threads) J
  18. 18. Caching  Based on Oracle Coherence  Protect back-end from heavy load  Configurable time-to-live  Uses Cache Token Expression  e.g. fn:data($body/s01:getEmployee/EmpID) J
  19. 19. Load Balancing  Multiple load balancing algorithms  Endpoint management:  Supports service pooling  Automatic URI elimination J
  20. 20. Endpoint SLA  Alert Rules  Overview E
  21. 21. Transports  OSB transports > JCA transports  Database + AQ use JCA -> JDeveloper  File JCA reads chunks (large files)  JEJB transport (java object over the bus) E
  22. 22. Text Processing  MFL will disappear  Use Native Format Builder of Oracle SOA Suite  Use Oracle B2B (part of SOA Suite) for EDI, HL7, RosettaNet, etc E
  23. 23. Routing  Using Dynamic Routing  Transport type must be the same  Mediator: dynamic with business rules + interface must be the same  Routing based on message content & headers ( performance )  Mediator: only message content J
  24. 24. Enrichment  Use the Service Callout  Mediator: almost impossible J
  25. 25. Publish  Fire-and-Forget messages (1 way)  Logging / Audit  Publish to local JMS  Minimize message loss  Prevent failure  Offload with Store-and-Forward E
  26. 26. Validate  Use Validate action early in proxy (stage)  Prevent transformation errors  Prevent invalid information to back-end  Basic XML schema validation  No schematron support E
  27. 27. Error handling  Default the request $body returned (echo)  Stage, Pipelines, Route & System  $fault in OSB is no valid SOAP Fault  Best Practice:  define Error handling strategy  define <soap:Fault> mapping J
  28. 28. Agenda  Overview  OSB & SOA Suite  Using the OSB  Bad Practices E
  29. 29. Bad practice I - Datamodel Same WSDL J
  30. 30. Bad practice II - Orchestration E
  31. 31. Bad practice III – execute-SQL fn-bea:execute-sql($datasrc, $rowElemName, $sql, $param1-n) • Officially only retrieve (select), but … • Designed for simple lookup (name value pair) • Risk: bad SQL fired at database • Increasing rows resultset => bad performance E
  32. 32. Bad practice IV – Java galore J
  33. 33. Bad practice V – Complexity J
  34. 34. Conclusion An ESB on its own is not a complete SOA solution, even though it is often marketed that way. Gartner/Burton Group 2007 E
  35. 35. Questions ?
  36. 36. Shameless plug The Oracle Service Bus Development Cookbook is a book which contains more than 80 practical recipes to develop service- and message-oriented solutions on the Oracle Service Bus 11g. OTN + Packt recipes available

Editor's Notes

  • Vondikwelmooie quote, hebdat Gartner/Burton artikeloverigensdigitaalGrotergemaakt
  • Integration patternDavid Chapell (2004)
  • http://docs.oracle.com/cd/E14571_01/doc.1111/e15866/soa.htm
  • http://docs.oracle.com/cd/E16764_01/integration.1111/e10223/09_policy_mgr.htm
  • https://blogs.oracle.com/knutvatsendvik/entry/throttling_in_osbhttp://weblogic-wonders.com/weblogic/2010/11/21/understanding-the-work-managers/If you don’t explicitly define your Dispatch Policy on your JMS Proxy, then it will run in the default thread pool with everything else. This may be fine in some cases, but for services that require a short SLA, then allocating a dedicated Work Manager is probably a good idea.
  • https://blogs.oracle.com/knutvatsendvik/entry/throttling_in_osbhttp://weblogic-wonders.com/weblogic/2010/11/21/understanding-the-work-managers/If you don’t explicitly define your Dispatch Policy on your JMS Proxy, then it will run in the default thread pool with everything else. This may be fine in some cases, but for services that require a short SLA, then allocating a dedicated Work Manager is probably a good idea.
  • http://www.orafmwschool.com/oracle-service-bus-routing-and-transformation/
  • https://blogs.oracle.com/christomkins/entry/load_balancing_in_aqualogic_se
  • http://biemond.blogspot.com/2011/05/osb-endpoint-monitoring-and-sla-alert.html
  • http://www.orafmwschool.com/oracle-service-bus-routing-and-transformation/
  • Visio: ServiceCallout en getCustomerDetails call (GOOD)
  • Visio: ServiceCallout en getCustomerDetails call (GOOD)
  • STORY: protect OSB (support team) for invalid date errorshttp://gibaholms.wordpress.com/2011/10/31/advanced-validation-in-oracle-service-bus-11g/
  • http://jvzoggel.wordpress.com/2011/07/28/custom-soap-faults-osb/
  • Uses CDM from backend in BS and PS, result all clients use proprietary datamodel. After application upgrade/change all consumers need to update.
  • ServiceCallout with multiple Update/Write actions on non reliable protocol (HTTP),ERROR: what if 3rd SC fails
  • Using work-around you can insert data as wellcomplex SQL statements in Xqueryvs DB-adapter with tight DB coupling and small change Jdev/Eclipse WSDL export/importSmall select BEA function, large rowcount becomes very slowLast remark not necessary, but strange behaviour select * from customer -&gt; becomes CUSTOMER
  • ZwareJavaCallout met extreemveelmemoryload (jijidee?)
  • Adding to much logic in the service (route tables, dynamic publish, if-then-else)
  • Vondikwelmooie quote, hebdat Gartner/Burton artikeloverigensdigitaalGrotergemaakt

×