Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle...

68
Tips and Tricks for Oracle SOA Suite by Oracle A- Team, Engineering, and Customers Session: CON7977 Joseph Kardamis, IT Manager, The Sherwin-Williams Company David Shaffer, Managing Partner, Middleworks Sherwood Zern, Consulting Solution Architect, Oracle Yogesh Kumar, Director, Oracle Kathryn Lustenberger, Principal Product Manager, Oracle Oracle Confidential – Internal/Restricted/Highly Restricted Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Transcript of Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle...

Page 1: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Tips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers

Session: CON7977

Joseph Kardamis, IT Manager, The Sherwin-Williams CompanyDavid Shaffer, Managing Partner, MiddleworksSherwood Zern, Consulting Solution Architect, OracleYogesh Kumar, Director, OracleKathryn Lustenberger, Principal Product Manager, Oracle

Oracle Confidential – Internal/Restricted/Highly RestrictedCopyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Page 2: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Ԥ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Safe Harbor Statement

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Oracle Confidential – Internal/Restricted/Highly Restricted 3

Page 3: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

㭠Ԥ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 – Monday, Oct 26:

CON8056

Oracle Integration Strategy: Cloud, Mobile, Events, and API

Management 11:00 AM - 11:45 AM

CON7977

Tips and Tricks for Oracle SOA Suite by Oracle A-Team,

Engineering, and Customers 12:15 PM - 1:00 PM

CON6371 Oracle Integration Cloud Service—Innovation in Integration 1:30 PM - 2:15 PM

CON7963

Oracle SOA Suite Cloud Service—Accelerate Your Integration

Platform 2:45 PM - 3:30 PM

CON7971

Solving Real-Time Streaming Analytics Mysteries: Oracle

Stream Explorer Strategy 2:45 PM - 3:30 PM

Page 4: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

��

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 – Tuesday, Oct 27:

CON9635

Oracle API Management Vision—Building, Promoting, and

Managing APIs for Success 11:00 AM - 11:45 AM

CON6359

Oracle Managed File Transfer Bulk/Batch Integration with

Fusion Applications 4:00 PM - 4:45 PM

CON7947

Using Oracle Service Bus and JavaScript to Modernize Your

Integrations 5:15 PM - 6:00 PM

CON7965 Mission-Critical Oracle B2B Customer Implementations 5:15 PM - 6:00 PM

MTE10097 Oracle Service Bus for Microservices Architecture 7:15 PM - 8:00 PM

Page 5: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 – Wednesday, Oct 28:

CON8115 High-Performance Oracle SOA Suite Customer Panel 11:00 AM - 11:45 AM

CON7967 Oracle’s API Management Roadmap 11:00 AM - 11:45 AM

CON7975

Gain Insight into Integration and Improve Operational

Intelligence 12:15 PM - 1:00 PM

CON6271

Accelerate Your SaaS Integration with Oracle Integration

Cloud Service 1:45 PM - 2:30 PM

Page 6: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 – Wednesday, Oct 28 - Continued:

CON7974

Oracle Stream Explorer: A Pattern-First Approach to Real-

Time Streaming Analytics 1:45 PM - 2:30 PM

CON7996 Oracle SOA Suite 12c Success Stories 3:00 PM - 3:45 PM

CON6377 Oracle SOA Suite Cloud Service and Hybrid Integration—

Customer Panel

4:15 PM - 5:00 PM

Page 7: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Oracle Service (SOA) & Cloud Integration Sessions @ OpenWorld 2015 - Thursday, Oct 29:

CON9633

Oracle Integration Cloud Service—Catalyst for Success in the

Cloud 9:30 AM - 10:15 AM

CON6373 Cloud Integration Best Practices—Customer Panel 10:45 AM - 11:30 AM

CON7942 Introduction to Oracle SOA Suite 12.2.1 Operations 10:45 AM - 11:30 AM

CON7993

Boost SaaS and On-Premises Connectivity: Leverage Oracle

Cloud Adapters 1:15 PM - 2:00 PM

CON10096

Oracle SOA Suite for Healthcare Integration: the Path to Large-

Scale Production Deployment 1:15 PM - 2:00 PM

Page 8: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

莐.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Oracle Service (SOA) & Cloud Integration Hand-On Labs:

HOL10440 Secure Managed File Exchange for the Hybrid Cloud

Monday, Oct 26:

11:00 AM - 12:00 PM Hotel Nikko—Nikko Ballroom III

HOL10756

Oracle API Manager Cloud Service Plus Oracle SOA Cloud

Service—Developer Speed and Innovation

Monday, Oct 26:

11:00 AM - 12:00 PM Hotel Nikko—Mendocino I/II

HOL10414

Explore Real-Time Business Data: Oracle Stream Explorer

and Oracle Business Activity Monitoring

Tues, Oct 27:

10:15 - 11:15 AM Hotel Nikko—Nikko Ballroom III

HOL10759

Integration of SaaS and On-Premises Applications with

Oracle Integration Cloud Service

Tues, Oct 27

11:45 AM - 12:45 PM Hotel Nikko—Mendocino I/II

HOL10461

Achieving Greater Operational Efficiency with Oracle SOA

Suite

Wed, Oct 28

4:15 PM - 5:15 PM Hotel Nikko—Nikko Ballroom III

HOL10416

Using Oracle Service Bus to Power Your Integration Today

and into the Future

Thurs, Oct 29

2:00 PM - 3:00 PM Hotel Nikko—Nikko Ballroom III

Page 9: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�θ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Oracle Service (SOA) & Cloud Integration Demo Pods

SLM | 021 Oracle B2B, Oracle Healthcare, and Oracle Managed File Transfer

Moscone South, Lower Left,

Middleware

SLM | 023Oracle Business Activity Monitoring and Oracle Real-Time Integration

Business Insight

SLM | 024 Oracle API Management

SLM | 026 Oracle Stream Explorer

SLM | 027Oracle Integration Adapters: Rich and Comprehensive Connectivity to SaaS,

On-Premises, and More

SLM | 028 Oracle Integration Platform for Services

SPI | 031 Oracle SOA Cloud Service Moscone South, Oracle Cloud

Platform and Infrastructure

ShowcaseSPI | 031 Oracle Integration Cloud Service

Page 10: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Blending SOA and Agile practices

Joe Kardamis, Sherwin-Williams

IT Manager, SOA/Integrations

Page 11: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

SOA + Agile = ???SOA + Agile = ???

◆ Why would you?

◆ How would you?

Page 12: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Why would you mix SOA and Agile?Why would you mix SOA and Agile?

◆ Business Agility!

◆ SOA’s aim (among other things) is to flatten the cost of

change by making change smaller and less risky, thereby

enabling the business to change as often as it needs

◆ Agile’s aim (among other things) is to deliver value as

often as possible so as to elicit continuous feedback from

the business and enable change

◆ Doing both will give you Even More Agility! And, as many

teams are trending Agile, being able to blend the

methodologies is beneficial to collaborating

Page 13: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

How we have historically “done SOA”How we have historically “done SOA”

◆ Wait, who’s “we”?

– The Sherwin-Williams Company (so, paint)

– Corporate IT, Internet Services (custom applications and

solutions for various aspects of the company – external web sites

and mobile tools, internally facing business process

improvement, et cetera)

– SOA/Integrations Team (think: “Integration Competency Center”,

or “SOA Center of Excellence” as defined by Wikipedia)

Page 14: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Okay, back to SOA thenOkay, back to SOA then

From Oracle SOA Engineering Framework

Page 15: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

What had to change?What had to change?

◆ Service Identification and Discovery

– Input: Requirements

– Action: Analysis of Requirements to determine Service

Candidates that are “worth it”, and discover what, if any, Services

already exist which can fulfill the need

– Output: Service candidates

– Agile Analog: Epic/Feature Decomposition and Spikes

� Risk: “Design by Decomposition” – if this step is not done

deliberately, or done by the wrong parties, it may be missed

� Mitigation: Ensure “SOA System Architect” involved in

decomposition

� Acceptance: The process is set up to embrace change

Page 16: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

What had to change?What had to change?

◆ Service Release Planning

– Input: Current Services in flight plus new Service Candidates

– Action: Whether or not existing Services are to be continued, and

what Service Candidates are to be accepted by the team

– Output: Updated Release Plan

– Agile Analogs: Release Planning, Sprint Planning, Backlog

Grooming

Page 17: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

What had to change?What had to change?

◆ Service Definition

– Input: Fully understood functional and non-functional

requirements associated with Service Candidate

– Output: Service Contract

– Agile “Analog”: Roughly, user story Acceptance Criteria

� Inversion: Requirements for services in flight are collected, and

published as a contract (specification) at release/promotion time

� More change is expected, so less time is spent on definition/analysis

– Generally, the service consumers are expecting this as well, so it’s not as

pain-causing as with traditional waterfall

– Interesting: Service “taxonomies” (e.g. app vs. shared, connectivity vs.

data) are more fluid, and services tend to “evolve” from tier to tier

Page 18: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

What had to change?What had to change?

◆ Service Design, Implementation, and Testing

– Input: Service Contract

– Output: Service Interface and functional Service

– Agile Analog: Implementation of user stories, regression testing

� Story implementation covers design, implementation and testing

� Generally each story will correspond to a single operation.

� Implication: The Service Interface is in flux until it’s all done

� Inherently iterative, so care needs to be taken when defining the

Versioning Policy. As other teams are also iterative, they are more

able to flex to your changes, especially while still in development

� Design-Time Governance is fragmented across stories. Performing a

pre-release check (e.g. Code Review) is recommended

Page 19: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

What had to change?What had to change?

◆ Service Deployment and OA&M

– Agile Software Development Methodologies are more concerned

with how to build the software, not how to support it, and as

such, existing methods to perform these activities are fine as is

Page 20: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Did it blend?Did it blend?

◆ So far, yes! We’re roughly 8 months in to this

“experiment”

◆ But there have been additional challenges as it relates to

inter-team dependencies

– Accommodating unplanned work is far easier in Kanban than in

Scrum, which reduced the impact of inter-team dependencies

– We hypothesize that shifting from centralized SOA CoE

(Component Team) to “embedding” SOA developers in attempt

to create “Feature” teams will result in a reduction of the

number of inter-team dependencies

Page 21: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Thank you!Thank you!

◆ Any Questions?

◆ Email: [email protected]

Page 22: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Logistics and challengesLogistics and challenges

◆ Ideally, teams should be “Feature” teams

– Feature teams can work a Feature from end to end entirely itself,

realizing the business value without requiring additional

coordination with other teams

– Cross-team dependencies are reduced

◆ However, most of our teams were “Component Teams”

– Standing up a new platform tends to gravitate towards systems

– Our team (SOA CoE) is a Component Team, and is also the team

through which many of the cross-team dependencies flow

◆ Therefore – LOTS of dependencies

Page 23: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Experiment 1: Scrum to KanbanExperiment 1: Scrum to Kanban

◆ Due to the large amount of churn and

unplanned/unplannable work, a system with less

heaviness on the planning side may be appropriate

◆ Kanban is more about flow and less about “the plan for

the timebox”

◆ Kanban allowed us to flag when items are needed to help

with prioritization, but allowed us to introduce new work

mid-sprint without wrecking “the plan” (because “the

plan” was never “done”)

Page 24: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Did it work?Did it work?

◆ Yes! We were more productive

◆ No! Cross team dependencies still present challenges

0

10

20

30

40

50

60

70

80

SAFe + Scrum SAFe + Kanban

Ve

loci

ty (

pts

/fo

rtn

igh

t)

Page 25: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Experiment 2: CoE to CoPExperiment 2: CoE to CoP

◆ “Dissolution” of physical SOA CoE

– Sending out SOA developers to “embed” with other teams in

attempt to promote “Feature” teams

◆ Concerns identified around keeping quality, cohesion

among SOA team

◆ Mitigation: Creation/formalization of “SOA Community of

Practice” to meet periodically to cover things like best

practices, design time governance, code reviews, et

cetera

Page 26: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Did it work?Did it work?

◆ Don’t know yet! This experiment has just started…

Page 27: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

SOA StuffSOA Stuff

◆ Oracle Practitioner Guides

– Identifying and Discovering Services:

http://www.oracle.com/technetwork/topics/entarch/oracle-

pg-soa-ident-svc-r3-2-1561704.pdf

– Software Engineering in a SOA Environment:

http://www.oracle.com/technetwork/topics/entarch/oracle-

pg-soa-sw-engineering-r3-2-1561707.pdf

Page 28: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

More SOA StuffMore SOA Stuff

◆ Oracle Reference Architectures

– SOA Foundation:

http://www.oracle.com/technetwork/topics/entarch/oracle-

ra-soa-foundation-r3-1-176715.pdf

– SOA Infrastructure:

http://www.oracle.com/technetwork/topics/entarch/oracle-

ra-soa-infrastructure-r3-2-1561710.pdf

Page 29: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

Agile StuffAgile Stuff

◆ Agile Manifesto/Principles

– http://www.agilemanifesto.org/

– http://agilemanifesto.org/principles.html

– Ooh look a SOA one… http://www.soa-manifesto.org/

◆ Scrum and Kanban stuff

– http://www.collab.net/services/training/agile_e-learning

– http://jpattonassociates.com/kanban_oversimplified/

– http://leansoftwareengineering.com/ksse/scrum-ban/

◆ Agile at scale

– http://www.scaledagileframework.com/

– http://www.disciplinedagiledelivery.com/

Page 30: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Oracle Open World – October 2015

SOA + Agile StuffSOA + Agile Stuff

◆ http://www.jbrains.ca/permalink/soa-and-agile-

friends-enemies-frenemies

◆ http://www.zdnet.com/article/what-does-soa-bring-to-

agile-or-agile-to-soa/

◆ http://www.infoq.com/articles/agile-soa-

implementation

◆ https://www.ibm.com/developerworks/community/bl

ogs/ambler/?entry=strategies_for_agile_soa&lang=en

Page 31: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,
Page 32: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

OpenWorld 2015

Sherwood ZernSolution ArchitectFMW A-TeamOctober 26, 2015

Oracle Confidential – Internal/Restricted/Highly RestrictedCopyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Page 33: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Ծ忐

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Safe Harbor Statement

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Oracle Confidential – Internal/Restricted/Highly Restricted 3

Page 34: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӎ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Program Agenda

Service Invocation Actions

SOA Direct-Binding

1

2

Oracle Confidential – Internal/Restricted/Highly Restricted 4

Page 35: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӏ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Program Agenda

Service Invocations

SOA Direct-Binding

1

2

Oracle Confidential – Internal/Restricted/Highly Restricted 5

Page 36: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӏ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Service Invocation Options

• Oracle Service Bus supports several different ways to invoke an external service – understand the differences and choose the right one for your requirements:

1. Service Callout

– Enrichment of the payload

– Blocking Call

2. Publish

– Invoke the service asynchronously

–Non-blocking call - continue with the message flow without waiting on a response

Oracle Confidential – Internal/Restricted/Highly Restricted 6

Page 37: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӏ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Service Invocation Options(continued)

3. Routing

– Common mechanism to invoke a service

– Demarcation between request and response pipelines

–Uses asynchronous servlet to wait for response from HTTP-based service

4. Java Callout

– Should only be used when invoking very fast services

– examples: Read or Update a cache, quick calculations

Oracle Confidential – Internal/Restricted/Highly Restricted 7

Page 38: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӏ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

A Common Challenge with Service Callout

• Symptom

–OSB encounters STUCK threads

Oracle Confidential – Internal/Restricted/Highly Restricted 8

Page 39: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

A Common Challenge with Service Callout

• Resolution

– Assign Minimum Constraint Work Manager to Invoked Business Service

– Set the number of threads ( 0 < Threads <= 2)

• Work Managers used should be unique per Business Service

• References

– http://docs.oracle.com/middleware/1213/wls/CNFGD/self_tuned.htm#CNFGD112

Oracle Confidential – Internal/Restricted/Highly Restricted 9

Page 40: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӏ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Service Callout Tips

• Error Handling

– Put the Service Callout in its own Stage

– Add a Stage Error Handler

• The fault will not be returned in the SOAP Body (HTTP)

– The fault will be returned in the $fault variable

–Update the SOAP Body with the $fault contents

Oracle Confidential – Internal/Restricted/Highly Restricted 10

Page 41: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӏ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

A Common Challenge with Publish

• Fire-And-Forget; works great, but …

• Potential Issue: What the fetch happened to my messages?

– Errors from remote service are not returned

–Messages are not guaranteed delivery

Oracle Confidential – Internal/Restricted/Highly Restricted 11

Page 42: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӏ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

A Common Challenge with Publish

• Resolution

– Adding Routing Options to the Request Pipeline in the Stage

– Set the Quality of Service to Exactly-Once

– Add Error Handler to Stage

– Errors encountered by remote service get returned to the error handler

– Error handler needs to ensure that the messages are not lost

Oracle Confidential – Internal/Restricted/Highly Restricted 12

Page 43: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

�ӏ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Routing Tips

• Can only have one Route per pipeline-request pair

• Use Route versus Publish if no need to continue processing through the request pipeline

• With HTTP transport the response is handled by an asynchronous servlet

– Request thread is returned to the thread pool

• Setting the Quality of Service to Exactly-Once will use the same thread for the response as the request• Helps control the number of concurrent threads to a remote service

Oracle Confidential – Internal/Restricted/Highly Restricted 13

Page 44: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

ꅐ͵

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Java Callout Tips

• The invoked Java resource should be deployed within the OSB domain

– Able to control its availability

• The invoked method must be static

• Make sure the operation executes quickly

– The request thread is the same thread executing the Java method

Oracle Confidential – Internal/Restricted/Highly Restricted 14

Page 45: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

쎰ӟ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Service Invocation Tip:

• http://www.ateam-oracle.com/wp-content/uploads/2013/09/OSBThreadingModelHTTPTransport_1.1.pdf

Oracle Confidential – Internal/Restricted/Highly Restricted 15

Understand the OSB Threading Model

Page 46: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

칀Ӡ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Program Agenda with Highlight

Service Invocation Actions

SOA Direct-Binding

1

2

Oracle Confidential – Internal/Restricted/Highly Restricted 16

Page 47: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

칀Ӡ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

SOA Direct-Binding

• Is the right choice for invoking a SOA composite IF your use case involves one of these three requirements

– You need to propagate the Security Subject to SOA

– You need to propagate the transaction context to SOA

– You have an asynchronous process with a callback to the OSB from SOA

Oracle Confidential – Internal/Restricted/Highly Restricted 17

Page 48: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

칀Ӡ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

SOA Direct-Binding

• What you need to understand

– SOAP/HTTP should be used if the use case does not need to provide the previously mentioned requirements

– Timeouts cannot be set on this transport; could potentially lead to long running processes

– Thread is blocked until a response is returned

– The underlying XML object must be converted from OSB Xquery Tokenized Stream to a DOM object for outbound and vice versa inbound

Oracle Confidential – Internal/Restricted/Highly Restricted 18

Page 49: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

칀Ӡ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 19

Page 50: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,
Page 51: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,
Page 52: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

SOA Development Best Practices

Yogesh KumarDirector, Software DevelopmentSOA Core and BPEL Development

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Page 53: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Ծ忐

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Program Agenda

Reducing your code

Reduce and Manage Storage (aka dehydration store)

1

2

3

Page 54: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Ӎ

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Faults: Categories and Strategies• System Errors

– Potentially retry able e.g temporary network glitches, endpoint not available– Actionable - Bad composite code/transform

• Business Faults– Actionable - Related to bad payloads, dodgy code – you should try to catch all these

so engine won’t retry them

• Identify common fault handling strategy, for each of two possible cases:1) If in-flight business transaction can be modified and continue:

• Use Fault Policy Human Intervention to pause the flow at faulting invoke • Use User Action to:

– Address error/modify data– Retry/Continue

2) If business semantics require abort and restart/resubmit• Use fault policy Java Action to cause resubmit/log, followed by Terminate current transactionHandling Faults with the Fault Management Framework

4

Page 55: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Ӎ

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Reusable Error Handling

• Reduce code with externalized fault/error handling– Avoid duplicating catch blocks all over process– Can be a common strategy for all composites or override for individual composites

• Use SOA Auto Recovery – Applies to faults which you have not caught and don’t have a fault policy for– Intermittent network related Retry able – let engine handle them – Configure auto recovery to run 24x7

• Use Fault Policy– Do not Retry Payload related faults (or business faults)– Use human intervention action in fault policy – Once in human intervention, data can be modified and instance can be aborted,

retried or continued

5

Page 56: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Ӎ

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Reusable Error Handling

•Feature : Fault Policy

•For error handling external to SOA which does not impact the SOA/BPEL design or runtime

•Policies are defined in XML

•Re-useable across composites and components

•Pre-defined actions retry, human intervention, replay scope, rethrow fault, abort, and custom Java actions

Using Fault Handling in a BPEL Process

6

Page 57: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

妰ӎ

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

• May set completionPersistPolicy to Faulted

• Audit composite applications at BPEL activity level

– Set Audit Level to minimal

– Identify mile stone activities in your process

– In Java Embedded Activity use addAuditTrailEntry to store custom mile stone based audit

• Another alternative is to use sensors on important mile stone related activities.

<bpelx:exec name=“mile_stone_1" language="java" version="1.5">

<![CDATA[

addAuditTrailEntry(“Reached Mile Stone 1");

]]>

</bpelx:exec>

Reduce StorageLong Running Processes and Audit Trails Can Fill a lot of DB..

Page 58: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

• Audit Policy feature in 12c will allow to further reduce audit trail data, where you choose to

• Configure audit trails for composite applications at BPEL activity level

– Identify mile stone activities in your process

– see documentation

<auditPolicies ..>

<auditPolicy name="whilePolicy">

<!– do not audit assign-->

<activity type="bpel:assign“ auditLevel=“off"/>

<!– do not audit while-->

<activity type="bpel:while" auditLevel=“off"/>

<activity type="bpel:exec“ auditLevel=“production"/>

</auditPolicy> </auditPolicies>

Reduce Storage

Page 59: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

ӟ

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Manage Storage

• Know your data - inflow rate, completion rate, fault rate

• Identify storage used

• Build your purge strategy and get your DBA familiarized with the SOA Suite metadata repository schema

• For 11g: see this White Paper

• For 12c: review the documentation

• Automate Purge and plan/measure/test well in advance of production

– 12.1.3 comes with out of box auto purge

Page 60: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Working With Very Large Schemas

David ShafferManaging [email protected]

Copyright © 2014, Oracle and/or its affiliates. All rights reserved. |

Page 61: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Agenda

Very Large Schemas

JDev Bundle Patches

Sparse Mappings

Non-Sparse Mappings

Additional Tips

For full XSLT tips and tricks doc, see: http://bit.ly/1M92Cq3

1

2

3

2

4

5

Page 62: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

쎰ӟ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Large / Complex Schemas

• A very common issue with packaged apps

• Mapping / data transformation can be the hardest part of integration

–Understanding schema (sorry, can’t help with this…)

– Tools issues with schemas, WSDLs, etc

– Hard to traverse schemas for mapping, finding the right elements, etc

• This customer was using OTM’s Glog schema

• Just navigating Glog schemas in JDev 12c XSLT mapper was painfully slow

– Everyone assumed this meant doing mapping manually and minimizing use of Glogschemas

3

Page 63: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

緀Ӡ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

JDev Bundle Patches

• 12c Bundle Patch 2 (and beyond) immediately resolved our JDev XSLT mapper issues

• Not everyone is aware of them and instructions for installing helpful

• Need metalink to access, which some developer downloads may not have

• For instructions to install bundle patch 3 (latest as of 10/15/15), see Jan van Zoggel’s blog post at:

– https://jvzoggel.wordpress.com/2015/08/14/patching-your-jdeveloper-12-1-3-with-soa-bundle-patch-12-1-3-0-3/ (or http://bit.ly/1LPJZRI for shortened link)

4

Page 64: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

㥠Ӥ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Sparse Mappings

• XML trees can be very large and you often only use a very small number of the nodes in your mappings

– Constantly scrolling through nodes that are of no use to you

• Two strategies for dealing with sparse mappings

1. Generate a schema from sample XML – can be done in XSLT mapper when selecting schema for source or target for your map

– Can then Replace/Add Source or Target schema to switch back and forth

2. Use XSLT view (new in JDev 12c)

– Provides condensed look at the mappings you are creating – only see target nodes which are used

5

Page 65: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Ӫ

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Sparse Mappings: XSLT View

6

Page 66: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Non Sparse Mappings

7

Page 67: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Non Sparse Mappings - Tips

• Right-click on target node and Set Display Scope to only show mappings to that node (and its descendents)

• Right-click any hidden area and use text search to find and display additional nodes you need

8

Page 68: Tips and Tricks for Oracle SOA Suite by Oracle A- Team, · PDF fileTips and Tricks for Oracle SOA Suite by Oracle A-Team, Engineering, and Customers Session: CON7977 Joseph Kardamis,

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |

Additional Tips

• Reduce textual clutter with Abbreviate Text to make mapper hide prefixes and also set up custom abbreviations (e.g. “CPL” �“CustomerPartyList”)

• Searches can be cancelled (added in bundle patch 2) and you can reduce the Expension Depth (maybe set to approx 10)

• Don’t use automap to copy large input XML documents – use identity template instead

• Use the XSLT editor to generate test documents (rather than the XSLT testing tool), *if* your schema contains abstract elements or overloaded types)

For full documentation of these tips, see: http://bit.ly/1M92Cq3

9