Slide 1

Slide 1 text

Oracle Service Bus 12c Everything You Always Wanted to Know About OSB 12c But Were Afraid to Ask munz & more, 14-Nov 2016

Slide 2

Slide 2 text

Who’s that guy? • Dr. Frank Munz • Founded munz & more in 2007 • 15 years Oracle WebLogic and Middleware • Consulting and High-End Training • Three Oracle / Cloud books • @frankmunz on Twitter 2 Frank Munz 2016

Slide 3

Slide 3 text

The most comprehensive Oracle applications & technology content under one roof Service Oriented Architecture? Frank Munz 2016 #3

Slide 4

Slide 4 text

Interwoven mess with point to point integration The Enemy Portal RichClient WebApp Fraud Billing Network CRM web service? -> Slide #4 Frank Munz 2016

Slide 5

Slide 5 text

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 Frank Munz 2016 #5

Slide 6

Slide 6 text

So how does the solution look then? We talk about SOA. Will introduce and explain ... • EAI • BPM (Oracle BPM) • BPEL (Oracle SOA Suite) ... and then see what role an OSB takes in SOA. Frank Munz 2016 #6

Slide 7

Slide 7 text

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 Slide #7 Frank Munz 2016

Slide 8

Slide 8 text

Drag and Drop Programming BPM, EAI and OSB: They all have executable, graphical flow diagrams. Frank Munz 2016 #8

Slide 9

Slide 9 text

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 Frank Munz 2016 #9

Slide 10

Slide 10 text

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 Frank Munz 2016 #10

Slide 11

Slide 11 text

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 Slide #11 Frank Munz 2016

Slide 12

Slide 12 text

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 Frank Munz 2016 #12

Slide 13

Slide 13 text

SOA Layers What does OSB do? Orchestration? Choreography? Composition? S. Abeck, TH Karlsruhe Frank Munz 2016 #13

Slide 14

Slide 14 text

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 Big Picture Frank Munz 2016 14

Slide 15

Slide 15 text

The most comprehensive Oracle applications & technology content under one roof OSB Overview Frank Munz 2016 #15

Slide 16

Slide 16 text

Proxy and Business Service Oracle Service Bus ProxyB BusinessY Client2 ServiceImpl2 BusinessX ProxyA ServiceImpl1 ServiceImpl1 Client1 Slide #16 Frank Munz 2016 PipelineH PipeJ PipeK

Slide 17

Slide 17 text

OSB Message Flow in Console Frank Munz 2016 #17

Slide 18

Slide 18 text

Transport and Binding Layer Oracle Service Bus ProxyServiceB BusinessServiceY Client2 ServiceImpl2 BusinessServiceX ProxyServiceA ServiceImpl1 ServiceImpl1 Client1 Transport Binding Transport Binding Slide #18 Frank Munz 2016 PL1 PL2

Slide 19

Slide 19 text

Context Variables Slide #19 Frank Munz 2016 Variables are filled automatically logical variable Purpose $header SOAP header for SOAP Else: empty $body SOAP body for SOAP Else: 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

Slide 20

Slide 20 text

Separate Pipelines from Proxy Frank Munz 2016 #20 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.

Slide 21

Slide 21 text

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 Frank Munz 2016 21

Slide 22

Slide 22 text

Service Bus VETO Pattern Client with data format vehicle A Service requires data format Vehicle B Validate Enrich Transform Operate Service with AdditionalData ESB VETO Pattern Frank Munz 2016 #22

Slide 23

Slide 23 text

Service Bus $body.versionID==V2? Client V1 Service V1 Service V2 Client V2 Client V1 ESB Versioning (same for loose coupling) Frank Munz 2016 23

Slide 24

Slide 24 text

Protocol Mix and Match Usage example: Facade your Tuxedo legacy services with web services Slide #24 Frank Munz 2016

Slide 25

Slide 25 text

Security • OSB is the core mediator service in SOA -> central location for security -> WS-Security standard based • Inbound security (client to OSB) • Outbound (OSB to service implementation) • Authentication / Authorization • Encrypt transport layer or message part Frank Munz 2016 #25

Slide 26

Slide 26 text

Monitoring Monitoring is based on • Alerts • Service Level Agreements (SLAs) • Reporting Provider Frank Munz 2016 #26

Slide 27

Slide 27 text

Monitoring at Action Level Frank Munz 2016 #27

Slide 28

Slide 28 text

Oracle Service Bus Cluster Managed Server1 Managed Server2 WLS Cluster Distributed OSB Cluster ProxyService BusinessService ServiceA BusinessService ProxyService ServiceA ServiceA Load Balancer Clients Clients Clients Frank Munz 2016 #28

Slide 29

Slide 29 text

Service Bus Functionality Overview • Loose coupling • Location Transparency • Schema Transformation and Validation • Service Aggregation • Load balancing, Clustering for Availability • Security • Monitoring Configuration driven, stateless, and (incredibly) fast Frank Munz 2016 #29

Slide 30

Slide 30 text

The most comprehensive Oracle applications & technology content under one roof Highlights of OSB 12c Frank Munz 2016 #30

Slide 31

Slide 31 text

SOA Quickstart • Official quickstart avoids full installation – 1 Installer, comes with JDeveloper – No extra DB needed – Used built-in WLS with compact domain – Cannot be extended for prod – Can we optimize it? Remove SOA Suite part?

Slide 32

Slide 32 text

XQuery • Support for Xquery 1.0 (previously OSB 11g: XQuery 2004) – Xquery modules / libraries – Create via wizzard / save – Reuse and import from JDeveloper

Slide 33

Slide 33 text

Based on JDeveloper 12.2.1 • No more support for Eclipse in12c • Developers have to learn a new IDE • Better integration with SOA Suite Frank Munz 2016 #33

Slide 34

Slide 34 text

Pipelines • Pipelines are not part of proxy anymore • Reuse of pipelines? • Templates – Pipeline template editor -> error handling – Linked (connected to template) or unlinked (copy of template)

Slide 35

Slide 35 text

Pipeline Templates Frank Munz 2016 35

Slide 36

Slide 36 text

New OFMCtrl Console Frank Munz 2016 #36

Slide 37

Slide 37 text

JavaScript Action • New OSB 12c action • Use Rhino JavaScript engine • Works for REST and non-REST • Quick and flexible – Easier than Java callout: no .jar file – Can access your .jar file Frank Munz 2016 #37

Slide 38

Slide 38 text

Java Script Action • Before invoking a script OSB binds a variable process • Use process variable and JS dot notation to access variables: pl = process.body ; process.numberIterations = 7 ; Frank Munz 2016 #38

Slide 39

Slide 39 text

Works in Log Actions You can use JavaScript in Log/Report Actions Frank Munz 2016 #39

Slide 40

Slide 40 text

Maven Support • Maven is a build tool like ant (or make) • Supports versioning and local repos of resources. • Central file pom.xml • Maven support in modern IDEs like Netbeans, also in JDeveloper12c (but broken) • Recommended read: https://community.oracle.com/thread/3672819?start=0&t start=0 Frank Munz 2016 #40

Slide 41

Slide 41 text

Native REST • No virtualization layer -> JSON payload is not converted to XML • New pipeline branch for REST Frank Munz 2016 #41

Slide 42

Slide 42 text

Native REST • To use it, start with REST technology adapter • Pull it to External Services lane Frank Munz 2016 #42

Slide 43

Slide 43 text

Shared Variables If PS1 declares and x and PS2 declares x, then P2 sees updates in x from PS1 -> Use „Expand Shared Variable Section“

Slide 44

Slide 44 text

DMV • Domain Value Maps • Values are dynamically changeable from EM console

Slide 45

Slide 45 text

New Consoles • /servicebus is the new /sbconsole with new L&F • /em has most of the /sbconsole functionality for monitoring / reports etc -> functionality is split across two consoles

Slide 46

Slide 46 text

DB is Required as of OSB 12c • RCU to create MDS (meta data, artifacts, metrics etc.) • More complex setup process • OSB 11g could work without, kind of …. Frank Munz 2016 #46

Slide 47

Slide 47 text

MDS • Design time only support for MDS • File based per default • Import resources from MDS to project

Slide 48

Slide 48 text

Debug OSB Projects Frank Munz 2016 #48 JDeveloper can debug OSB projects Lets you set conditional breakpoints

Slide 49

Slide 49 text

Chef / Puppet Scripted install that saves couple of hours? In a standard way? There are Puppet modules that install EVERYTHING from Edwin Biemond: https://github.com/biemond Frank Munz 2016 #49

Slide 50

Slide 50 text

Frank Munz 2016 #50

Slide 51

Slide 51 text

The most comprehensive Oracle applications & technology content under one roof Some Things You Should Know Frank Munz 2016 #51

Slide 52

Slide 52 text

What goes wrong? Frank Munz 2016 #52

Slide 53

Slide 53 text

Java Mission Control Java Mission Control comes with JDK 1.7.0_40 or later • Free for development • Ported over from JRockit • Detailed, graphical views -> start with jmc Frank Munz 2016 #53

Slide 54

Slide 54 text

And Now? Frank Munz 2016 #54

Slide 55

Slide 55 text

Heap Overload Quite often OSB is too fast , eg. PS listening to JMS Q is a MDB with poolsize 16. many msg -> too much garbage created on heap • Review architecture if ESB is the right solution • For PS listening to Q consider maxTConstr 1..2 • Sometimes even maxTConstr does not fix it, OSB is still too fast Frank Munz 2016 #55

Slide 56

Slide 56 text

Heap Overload • Bad, but feasible, solution: slow down service invocation / Q troughput • Can try tuning GC – higher eden size for generational GC – Different GC (throughput vs. latency vs. G1 collector) Frank Munz 2016 #56

Slide 57

Slide 57 text

Understand Your Threads Single most important non default setting • Systems in production can lock up even after years working well because of threading issues • Make sure a single service cannot take down OSB • Not easy to understand Frank Munz 2016 #57

Slide 58

Slide 58 text

OSB Deadlocks OSB can deadlock, e.g. BS returns from invocation, but PS threads are all blocked: • Configure BS and to use separate WM for with small minTConstr to prevent deadlocks. – WM settings for BS applies to response pipeline of PS – Size of minTConstraint = 1 – SBDefaultResponseWM as of 11.x Frank Munz 2016 #58

Slide 59

Slide 59 text

OSB Blocking Sync invocation of potentially blocking service can cause OSB to block • Use read and cx timeouts wherever applicable: – Service callout – Business service transport layer setting Frank Munz 2016 #59

Slide 60

Slide 60 text

OSB WMs • We configure WMs per service for – Deadlock prevention (minTConstr) – Overload protection (maxTConstr) – Monitoring (WMs are shown in admin console) • Shared WMs are possible but bring other issues – Oracle recommends them Frank Munz 2016 #60

Slide 61

Slide 61 text

The most comprehensive Oracle applications & technology content under one roof Oracle Cloud: SOA CS / ICS Frank Munz 2016 #61

Slide 62

Slide 62 text

Cloud Services • It will be hard to run OSB on AWS, GCP -> we know this since 5 years • Check out ICS and SOA CS instead • SOA CS is marketed as iPaaS = integration platform as a service • Let’s look at the promises: – Innovate faster – Connect more – Rapidly deliver value Frank Munz 2016 #62

Slide 63

Slide 63 text

SOA CS SOA CS includes the following components (simple domain config wizzard) • SOA Suite • Service Bus • Managed File Transfer • API Management CS Frank Munz 2016 #63

Slide 64

Slide 64 text

Key Benefits of PaaS Cloud automation gives you: • Quick and easy provisioning • 100% compatible (runs on premise SCAs) • Access to all consoles (EM, also WLS admin) • Easy scaling • One click ZDT patching • Automated Backup Frank Munz 2016 #64

Slide 65

Slide 65 text

Oracle ICS Frank Munz 2016 #65

Slide 66

Slide 66 text

tweet to win! #otntourla OR @soacommunity @frankmunz +picture?

Slide 67

Slide 67 text

www.munzandmore.com/blog facebook.com/cloudcomputingbook facebook.com/weblogicbook @frankmunz youtube.com/weblogicbook -> more than 50 web casts Don’t be shy 