Oracle Service Bus 12c Everything You Always Wanted to Know About OSB 12c But Were Afraid to Ask Service Oriented Architecture ? Interwoven mess with point to point integration The Enemy Portal RichClient WebApp Fraud Billing Network CRM web service? - > General Questions • Where is your business logic ? • What if you need to change it? • How many systems require changes if one system changes ... – A service API – A tranport protocol So how does the solution look then? We talk about SOA. W ill introduce and explain ... • EAI • BPM (Oracle BPM) • BPEL (Oracle SOA Suite) ... and then see what role an OSB takes in SOA. EAI Characteristics • Addresses the integration problem - > Supports many technical protocols • You need to deploy the solution (EAR / JVM), like the old BEA WLI , Tibco Businessworks • Does NOT support real business processes - > Technical level, NOT business level - > No long running processes (e.g. 10 years?) - > Not good in versioning - > Oracle Service Bus can do better BPEL Characteristics • Technical orchestration • Often no human interaction (yes, there is BPEL4People ...) • Can be stateful • Medium - long running processes - > Oracle SOA Suite has BPEL engine BPM Characteristics • Business architect draws executable workflow that make sense for business • Human interaction: Forms etc. • Long running processes supported (e.g. 2 yearly vehicle inspection stickers, TÜV) • Support different versions of long running processes • Adaptive Case Management (ACM) - > Oracle BPM provides all the above Service Bus • Also addresses EAI aspects but it's configuration driven! • Service bus is stateless • Supported protocols same as for EAI broker • Not BPM, not BPEL, and more than EAI - > Service Virtualization Layer - > Oracle Service Bus SOA Definition "Service - Oriented Architecture is an IT strategy that organizes the discrete functions contained in enterprise applications into interoperable, standards - based services that can be combined and reused quickly to meet business needs.“ from BEA / Oracle SOA Layers What does OSB do? Orchestration? Choreography? Composition? Service Implementation Service Virtualization and Compositon Service Orchestration Service Choreography BPEL ( technical flow ) Service Bus Java EE .NET Go Scala Governance Repository Registry BPMN (human Workflow) Monitoring ErrHospital ESB and SOA: The B ig Picture OSB Overview Proxy and Business Service Oracle Service Bus ProxyB BusinessY Client2 ServiceImpl2 BusinessX ProxyA ServiceImpl1 ServiceImpl1 Client1 PipelineH PipeJ PipeK Transport and Binding Layer Oracle Service Bus ProxyServiceB BusinessServiceY Client2 ServiceImpl2 BusinessServiceX ProxyServiceA ServiceImpl1 ServiceImpl1 Client1 Transport Binding Transport Binding PL1 PL2 Context Variables V ariables are filled automatically logical variable Purpose $header SOAP header for SOAP Else: empty < soap:Header /> $body SOAP body for SOAP Else: < soap:Body > with entire payload $ attachements SOAP attachements $fault typed error information $inbound service, transport and security information of inbound protocol $outbound outbound protocol $operation current operation Separate Pipelines from Proxy Proxy Service Pipeline Business Service Proxy Service Pipeline Business Service OSB 11g OSB 12c : Pipelines are not part of Proxy Service and can be reused. Service Bus Client1 Client2 Client3 Client4 Service1 Service2 Service3 Client1 Client2 Client3 Client4 Service1 Service2 Service3 Direct, point - to - point connections O(n ^2) complexity Service Bus Topology O(n) complexity ESB Reduced Architectural Complexity Service Bus VETO Pattern Client with data format vehicle A Service requires data format Vehicle B V alidate E nrich T ransform O perate Service with AdditionalData ESB VETO Pattern Service Bus $ body.versionID == V2 ? Client V1 Service V1 Service V2 Client V2 Client V1 ESB Versioning (same for loose coupling)