<Insert Picture Here> SOA Fusion Best Practices

Similar documents
Oracle SOA Suite 10g: Services Orchestration

Oracle SOA Dynamic Service Call Framework By Kathiravan Udayakumar

Oracle SOA Suite 12c: Build Composite Applications. About this course. Course type Essentials. Duration 5 Days

BPEL Research. Tuomas Piispanen Comarch

Testpassport.

[ ANATOMY OF A PROCESS IN ORACLE SOA SUTE] July 20, 2011

Oracle SOA Suite 12c: Build Composite Applications

B. By not making any configuration changes because, by default, the adapter reads input files in ascending order of their lastmodifiedtime.

Integration Framework. Architecture

Oracle SOA Suite. Best Practices Guide 10g Release 3 ( ) E

Oracle SOA Suite 11g: Build Composite Applications

Adapter Technical Note Technical Note #004: Adapter Error Management

Oracle SOA Suite 12c : Build Composite Applications

Integrating Legacy Assets Using J2EE Web Services

ORACLE INTRODCUTION. Service Bus 11g For the Busy IT Professional. munz & more Dr. Frank Munz November getting started

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Oracle SOA Suite 11g: Build Composite Applications

<Insert Picture Here> Click to edit Master title style

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Building E-Business Suite Interfaces using BPEL. Asif Hussain Innowave Technology

ebusiness Suite goes SOA

Transaction service settings

Bipul Sinha, Amit Ganesh, Lilian Hobbs, Oracle Corp. Dingbo Zhou, Basavaraj Hubli, Manohar Malayanur, Fannie Mae

<Insert Picture Here> WebLogic JMS Messaging Infrastructure WebLogic Server 11gR1 Labs

Services Oriented Architecture and the Enterprise Services Bus

Reliable asynchronous web-services with Apache CXF

Oracle WebLogic Integration

Data Management in Application Servers. Dean Jacobs BEA Systems

1Z

Process Choreographer: High-level architecture

BEAAquaLogic. Service Bus. JPD Transport User Guide

Collaxa s BPEL4WS 101 Tutorial

Fast Track to Java EE

1Z Oracle SOA Suite 12c Essentials Exam Summary Syllabus Questions

Oracle Fusion Middleware

Sun Java System Application Server 8.1: Administration & Deployment

Business Process Engineering Language is a technology used to build programs in SOA architecture.

Implementing a Business Process

Connecting Enterprise Systems to WebSphere Application Server

Build a Flexible Application Infrastructure Environment WebSphere Connectivity Solutions

Oracle Exam 1z0-478 Oracle SOA Suite 11g Certified Implementation Specialist Version: 7.4 [ Total Questions: 75 ]

Diplomado Certificación

What every DBA needs to know about JDBC connection pools Bridging the language barrier between DBA and Middleware Administrators

Oracle Developer Day

Oracle SOA Tips & Tricks. Ahmed Aboulnaga Technical Director Raastech

Oracle Fusion Middleware

Essential Software Architecture

Segment #10 Java Embedding

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Oracle Fusion Middleware

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Oracle SOA Suite 10g R3: Administration. Student Guide

ORACLE IDENTITY MANAGER SIZING GUIDE. An Oracle White Paper March 2007

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

WebLogic Server- Tips & Tricks for Troubleshooting Performance Issues. By: Abhay Kumar AST Corporation

Dave DiFranco SOA Frameworks

Lesson 11 Programming language

WebSphere. WebSphere Enterprise Service Bus Next Steps and Roadmap

D Fault Handling. Note: The solution for this chapter can be found in c:\po\solutions\apd

Oracle WebLogic Server 11g: Administration Essentials

ActiveVOS Technologies

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Layers of an information system. Design strategies.

BPEL-controlled frontends. A process-based pageflow solution. Ingo Meier SOA Competence Center OPITZ CONSULTING

Vendor: Oracle. Exam Code: 1Z Exam Name: Oracle SOA Suite 12c Essentials. Version: Demo

<Insert Picture Here> Upgrading from Oracle Application Server to Oracle WebLogic Server

Neuron Change History

BEAWebLogic Server. WebLogic Web Services: Advanced Programming

Developing Windows Communication Foundation Solutions with Microsoft Visual Studio 2010

Oracle Service Bus Integration Implementation Guide Oracle FLEXCUBE Universal Banking Release [April] [2014]

MySQL HA Solutions Selecting the best approach to protect access to your data

White Paper. Major Performance Tuning Considerations for Weblogic Server

BPEL FOR WORKFLOW DEVELOPERS Jerry Ireland, Rightsizing Inc

Developing Message-Driven Beans for Oracle WebLogic Server c (12.1.3)

Oracle Cloud. Using Oracle Eloqua Adapter Release E

Distributed Systems. Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1

Chapter 2 Distributed Information Systems Architecture

Best Practices for Testing SOA Suite 11g based systems

Database Binding Component User's Guide

Exam Questions TB0-119

Application Servers in E-Commerce Applications

What every DBA needs to know about JDBC connection pools * Bridging the language barrier between DBA and Middleware Administrators

SOA Expert Series: OSB Internals with Oracle A-Team

ابزارهای پیاده سازی معماری سرویس گرا )SOA(

CICS solutions White paper Delivering e-business access to CICS: strategic options.

X100 ARCHITECTURE REFERENCES:

WLS Neue Optionen braucht das Land

Configuring the Oracle Network Environment. Copyright 2009, Oracle. All rights reserved.

Overview SENTINET 3.1

Complex event detection on an enterprise service bus

Best Practices for Oracle Fusion Middleware SOA 12c Multi Data Center Active-Active Deployment

Oracle SOA Suite 11g: Administration

Oracle Fusion Middleware

IBM Security Access Manager Version 9.0 October Federation Administration topics IBM

WebSphere Application Server - Overview

Enterprise JavaBeans 3.1

Coherence An Introduction. Shaun Smith Principal Product Manager

MAA SOA EDG 12c. FMW MAA Team. Copyright 2016, Oracle and/or its affiliates. All rights reserved.

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SUITE

RESTful Web service composition with BPEL for REST

1Z0-560 Oracle Unified Business Process Management Suite 11g Essentials

Transcription:

<Insert Picture Here> SOA Fusion Best Practices Berthold Maier Chief Architect Oracle Corporation, Germany

How you should define SOA in the Fusion Environment Service Oriented Architecture (SOA) is a collection of selfcontained, loosely coupled services with well-defined interfaces that can be discovered by applications for communication in a standard-based manner regardless of location. SOA!= WebService BPEL: SOA is often referred to synonymously with web services; however, they are not the same. SOA is architecture, whereas web service is an enabling technology 2 2007 Oracle Corporation

3 2007 Oracle Corporation

SOA Project Methodology Oracle Fusion SOA Project Methodology provides best practices for SOA to take a project from assessment to execution, accounting for key dimensions such as organization, tools and techniques. Projects have three nested scopes of engagement: Enterprise Enterprise Business Business Level Level Maturity Maturity Model, Project Model, Governance Project--Best Best Practices Practices Governance Scope Enterprise Scope Activities Enterprise Service Activities Service Portfolio Portfolio Produce Application Produce Application best best practices, - practices, -Technical TechnicalLevel Service Application Service Application Classification scope Classification scope activities activities realize realize the the SOA SOA implementation Refinements implementation with Refinements to to the the service with Logical/Physical Logical/Physical design service portfolio portfolio and design Considerations, and business/technical Considerations, business/technical about about the the services Defining services Defining at Technology at the Technology the pillar pillar level components level components Refining Refining the the Process Process Portfolios Portfolios and and Solution Solution Specifications Specifications 4 2007 Oracle Corporation

5 2007 Oracle Corporation

SOA Global Mindchanges Some mind changes are required to implement a suitable SOA Most of Traditional -DB Developer are most forced to change SOA isn t a Project: For each Service implementation you should look up to use existing functionality and use it with a wrapper Anti-Pattern: Although many architects consider data replication bad and label it as a SOA antipattern, it should be noted that any pattern becomes an antipattern if it is implemented excessively, incorrectly, incompletely or just as a quick-fix. Even using web services in place of proper SOA is an antipattern. 6 2007 Oracle Corporation

SOA Critical Success Factors Referencearchitecture Processorchestration SOA Governance Central Metadatamanagement Security Common Data Format SOA Federation Monitoring Test User Interactions (GUI) Transactions Errorhandling Projectmodell 7 2007 Oracle Corporation

8 2007 Oracle Corporation

9 2007 Oracle Corporation

10 2007 Oracle Corporation

Federation as a SOA Key Concept End-to-End Security/User Identity Propagate Transparent Message Routing Trace Transactions End-to-End File Integrated Audit Framework Management across Heterogeneous SOA Environment Oracle SAP JCA Binding Domain 1 MDS 1 UDDI HTTP Binding HTTP Binding Domain 2 ESB Node 1 MDS 2 ESB Node 2 JCA Binding Database Web Service Manager TOMAX ESB Node 1 JMS Binding MOM JMS Binding Domain 3 ESB Node 1 MDS 3 ESB Node 2 Web Service Manager ESB Node 3 MQ Binding Mainframe 11 2007 Oracle Corporation

Useful BPEL Properties wsdllocation This property must be present. The BPEL compiler needs this to validate the BEPL source. wsdlruntimelocation This property is optional, it defaults to the wsdllocation property. This property allows multiple URLs separated by blanks (space, new line and tabs). Thus the engine will try sequentially if any of them are not available. wsseheaders Propagate/ WS-Security credentials wsseusername / wssepassword Security - the username/password for the token preferredport Preferred port to use in case there are multiple WSDL ports availabel. fullwsaddressing (Default value is "false ) WSDL will be generated to include full WSA headers in binding 12 2007 Oracle Corporation

Errorhandling (BPEL) BPEL Fault-Policy Framework Fault Handling With BPEL 10.1.3.3.3 Runtime fault Runtime faults will not be defined by the user; previous it must be handled in the process within catch-activity Default Available Actions: ora-retry ora-replay-scope ora-rethrow-fault ora-human-intervention ora-terminate ora-java <condition> <condition> <test>$fault.code/code="invalid_wsdl /> <test>$fault.code/code="invalid_wsdl /> <action <action ref="ora-terminate"/> ref="ora-terminate"/> </condition> </condition> 13 2007 Oracle Corporation

14 2007 Oracle Corporation

SOA and User Interaction BPEL4People Only usable in asynchron environment Support of synchron user interaction is in most projects a must Interaction BPEL Pattern Combine asynchron BPEL calls with synchron calls Use workflow queue in combination with long running tasks New CRUD Applications often SOA Killer Change architecture and use service at each use case end 15 2007 Oracle Corporation

BPEL Clustering I Firewall DMZ (BPEL Zone) BPEL Tier LBR VIP: bpel.someorg.tld 80, 443 Ports Open: 80, 443 BPELHOST1 BPELHOST2 Active-Active Topology OHS OC4J_BPEL OHS OC4J_BPEL 1521 Active-Passive Topology (Cold Failover Cluster) Firewall (Intranet) Data Tier Ports Open: 1521 RAC Adapters Concurrency High Availability Options RACHOST1 Dehydration Store RACHOST2 Supports: e.g. JCA-Database, JCA- JMS, etc. None Support: File and FTP adapters Active-Active Topology for Adapters Modified Active-Active Topology Active-Passive Topology Modified Active-Active Topology Active-Passive Topology Modified Active-Active Topology for Adapters Disable the Activation Agent for partner links (eg. FTP, File) in bpel.xml Implementation should consider: AQ as JMS-Provider Single-Consumer Queues, Virtualize BPEL Endpoints with ESB, OWSM, Registry,... RAC and Datasource with FCF Recovery Need some CPU Ressouses Disable: Set in Manage BPEL Domain" rcvagentdelay = -1 To prevent lock contention,start recovery only on one BPEl-Node 16 2007 Oracle Corporation

Dehydration - Breakpoint Activities Receive Wait Pick (onmessage, onalarm) Invoke (non-idempotent or non-blocking) It s where the process pauses Activities like wait, receive, onmessage and onalarm will create dehydration points in the process. What gets dehydrated: Meta data: state of process instance Essential for recovery Audit Trail: Dump of process instance history Useless for recovery When to dehydrate: At the end In the middle: at breakpoint activities 17 2007 Oracle Corporation

Tuning Scenario Common Problems Too much dehydration Use completionpersistxxx, auditlevel wisely Avoid Break point activities in large While loop Avoid updates of large variables in large while loop Transformation takes too long Use Oracle XDK Too many layers Minimize componentization Process too complex Use BPEL as glue, not programming language Transient process, audit only faulted instances inmemoryoptimizaiton=on completionpersistpolicy=faulted completionpersistlevel=all auditlevel=all Transient process, see all instances (but not full audit) inmemoryoptimizaton=on completionpersistpolicy=all completionpersistlevel=insteanc eheader auditlevel=minimum Durable process, need ability to recover, but not audit: auditlevel=off 18 2007 Oracle Corporation

Tuning Szenario Process type: oneway, transient (no breakpoints) Message size: 1K Inbound: JMS adapter, Outbound: WSIF/EJB Application Inbound JMS Queue JMS Adapter BPEL PM WSIF Binding EJB Outbound Database Modification Throughput (txn/min) Improve Process Change one-way. to two-way (WSDL) ~1,800 --------- Set completionpersistpolicy=faulted (bpel.xml) Adapter Use OCI driver (j2ee/oc4j_bpel/config/application.xml) 2,500 35% Adapter Create multiple (8) adapter agents (bpel.xml) 10,000 400% Cluster Stripe the one inbound queue into two Create a 2-node queue cluster Create a 2-node BPEL cluster Crisscrossing adapter agents to queues 19,000 (virtually unlimited scalability) 95% 19 2007 Oracle Corporation

BPEL Performance Attributes Durable Contains breakpoint activities (Wait, Asynch, ) Save state more than once Can recover from the last dehydrated state LoanFlow, OrderBooking Transient Process No breakpoint activities Save state ONLY once NO NEED to recover Nothing to recover CreditRatingService HelloWorld completionpersistlevel completionpersistpolicy? Save meta data on/deferred/fa ulted o f f auditlevel Save audit trail Save nothing completionpersistpolicy (inmemoryoptimization) Durable Process Audit Trail Meta Data Transient Process Audit Trail Meta Data Yes Yes completionpersistlevel (inmemoryoptimization) No (ignored) No Yes auditlevel Yes No Yes No 20 2007 Oracle Corporation

ESB Performance Tips Turn off logging in EM (ESB Developer Guide) Turn off instance tracking in ESB Control Use synchronous services wherever possible avoiding costly file or database writes Minimize the use of transformations as much as possible Use DVM in lieu of db lookup within XSL transformations to minimize file IO Note: Since ESB is stateless, the database performance is not as important as for BPEL if you turned off instance tracking 21 2007 Oracle Corporation

Threads and Transaction Dehydration: commit a database transaction Crash/time-out: transaction rolled back Recovery: load instance states from database Transactions can be propagated to EJB or WSIF Service transaction=participate property In 10.1.3.3.0, ESB no longer marks the JTA transaction for rollback if the transaction was initiated by BPEL. Instead, ESB throws an exception back to BPEL 22 2007 Oracle Corporation

Client Threads and Transactions T1 1 Container T1, Tx1 BPEL Engine Connection Pool 1. Receive msg, starts Tx1, acquire DB con, create instance 2. Hit the end of process 3. Save state, end Tx1 3 T1, Tx1 Dehydration Store 2 23 2007 Oracle Corporation

Client Threads and Transaction 1 T1, Tx1 Container 2 Worker Beans T2, Tx2 BPEL Engine Connection Pool 1. Thread 1 receives and saves msg. in Tx1 2. Thread 2 (WB) starts Tx2, acquires DB con, creates instance 3. Hit dehyd. point 4. Savse state, ends Tx2 5. Thread 3 receives and saves msg. in Tx3 6. Thread 3 starts Tx4, acquires DB con, continues instance 7. Hit end of process 8. Saves state, ends Tx4 T3, Tx3 T4, Tx4 Partner 5 DB 6 3 4 8 T2, Tx2 T4, Tx4 Dehydration Store 7 24 2007 Oracle Corporation

Reliability Scenario T1, Tx1 Crash! Client Container Worker Beans T2, Tx2 BPEL Engine Connection Pool Message NOT saved, NOT shown at Recovery Instance NOT saved, NOT shown at Console Client receives error T3, Tx3 T4, Tx4 Partner queue T2, Tx2 T4, Tx4 Dehydration Store 25 2007 Oracle Corporation

Reliability Scenario Message rollbacked to DB, shown at Recovery Client T1, Tx1 Container Worker Beans T2, Tx2 BPEL Engine Crash! Connection Pool Instance NOT saved, NOT shown at Console Client does NOT receive error T3, Tx3 T4, Tx4 Partner queue T2, Tx2 T4, Tx4 Dehydration Store 26 2007 Oracle Corporation

Client Reliability Scenario T1, Tx1 Container Worker Beans T2, Tx2 BPEL Engine Connection Pool Message rollbacked, shown at Recovery Instance saved, shown at Console, with the last state (up to Assign) Client does NOT receive error T3, Tx3 T4, Tx4 Partner queue Crash! T2, Tx2 T4, Tx4 Dehydration Store 27 2007 Oracle Corporation

Reliability Scenario T1 Client Container BPEL Engine T1, Tx1 Connection Pool Message NOT saved, NOT shown at Recovery Instance NOT saved, NOT shown at Console Client or partner receives error Crash! T1, Tx1 Dehydration Store 28 2007 Oracle Corporation

29 2007 Oracle Corporation