Oracle SOA Suite 12.2.
1 new features
OUGN Vårseminar 2016
Maarten Smeets, 10-03-2016
Introduction
• About me
– Oracle Integration Consultant
– Experience with Oracle SOA Suite since 2007
– Well certified (SOA, BPM, Java, SQL,
PL/SQL among others)
– Author of more than 100 blog articles
(http://javaoraclesoa.blogspot.com)
• About AMIS
– Located in the Netherlands
– Oracle Award winning partner https://nl.linkedin.com/in/smeetsm
@MaartenSmeetsNL
Agenda
• New features for the LOB user • New features for developers • New features for operations
– Enterprise Manager (ALTA style) – JavaScript in SOA composites – Circuit Breaker
– Service Bus Console (ALTA style) – JavaScript in Service Bus – Composite instance patching
– BAM, B2B, MFT new features – REST support (native, end-to-end) – Integration Workload Statistics
– Debugger enhancements (IWS)
– In-Memory SOA
– Automatic Service Migration (ASM)
5
New features for the LOB user
6
New features for LOB users
New Enterprise Manager
7
New features for LOB users
New Service Bus console
8
New features for Operations
New features for operations
Already in 12.1.3
• Auto Purge: Automatically purge old data past • Work Managers: Switch to work managers to
the retention point periodically on schedule. simplify and improve thread tuning. SIMPLIFIED
AUTOMATED OPERATIONS. TUNING.
• Modularity Profile: Reduce startup time and • Flow Trace: Switch to flow trace where multiple
memory by starting up only components used composites are shown in a single trace for better
(selected by selecting a profile). PERFORMANCE troubleshooting. SIMPLIFIED TROUBLESHOOTING.
• Lazy Loading: Reduce startup time by loading
composites only on first use. PERFORMANCE
IMPROVEMENT
• Exception centered management console:
Rework of the EM console to be centered around
exception conditions instead of business as usual.
RAPID PROBLEM IDENTIFICATION/RESOLUTION.
10
New features for operations in 12.2.1
Oracle Integration Continuous Availability
• Availability
– Composite Instance Patching – patch long running instances immediately.
– Automatic Service Migration (ASM) – faster failover
• Performance
– In-Memory SOA – Optimized performance, scalability, reduced database growth.
– Integration Workload Statistics – Performance Diagnostic tool similar to DB AWR.
– Parallel Deployment – faster startup
• Resiliency A license to Oracle WebLogic Server Continuous Availability
– Circuit Breaker – Improved resiliency is a prerequisite to license and use Oracle Integration Continuous
when downstream services go down. Availability. If using only In-Memory SOA, a license to Oracle
WebLogic Server Continuous Availability is not required.
11
Oracle WebLogic Server 12.2.1
Continuous Availability
• Automated cross-domain transaction recovery
Provides automatic recovery of XA transactions across an entire domain, or across an entire site
with servers running in a different domain or at a different site.
• Zero Downtime Patching
Provides an automated mechanism to orchestrate the rollout of patches while avoiding
downtime or loss of sessions.
• WebLogic Server Multitenant live resource group migration
Provides the ability to migrate partition resource groups that are running from one cluster/server
to another within a domain without impacting the application users.
12
Oracle WebLogic Server 12.2.1
Continuous Availability
• Coherence federated caching
Replicates cache data asynchronously across multiple geographically distributed clusters.
• Coherence GoldenGate HotCache
Detects and reflects database changes in cache in real time.
• Oracle Traffic Director
Routes HTTP, HTTPS, and TCP traffic to application servers and web servers on the network.
• Oracle Site Guard
Enables administrators to automate complete site switchover or failover.
13
Circuit breaker
Overview
• Automatically suspend upstream endpoints when a downstream endpoint is down
• Automatically resumes any suspended service when the downstream endpoint comes back up.
• Prevents fault buildup in the server. No need to bulk-recover faulted instances
• Supported for
– Web Service: Incoming requests are rejected for the duration that
the Web service is suspended.
– Adapters: JMS, AQ, DB, File and FTP adapters can be automatically
suspended in this release.
– EDN Subscribers: The EDN subscriber closest to the downstream
endpoint gets suspended.
14
Circuit breaker
Configuration
15
Circuit breaker
Configuration
16
Circuit breaker
In action
17
Patch running instances
Why?
• A long-running BPEL contains a bug
• Certain long running instances have not reached this bug yet
• If you redeploy a new version, it will not fix running instances; only new ones
• If you deploy the same version, your instances will become stale
Patching a process will allow to fix running
instances and prevent the error from occurring!
18
Patch running instances
What?
Compatible changes include Incompatible changes include
• Non-schema related XSLT changes • Deleting or renaming composite artifacts
• Changes to fault policy, sensor data, and • Updating binding properties
analytics data
• Changes to a WSDL and Schema definition
• Compatible BPEL changes such as sync/async
invoke, transformation activity, assign • Changes to XQuery mappings
operations, etc.
• Changes to BPEL receive inputs, structured
• JCA Adapter configuration properties activities, assign mapper source/target/skip
conditions
• Modifications of token values in composite
references
https://blogs.oracle.com/integration/entry/patching_soa_composite_instances_in
19
Patch running instances
How?
JDeveloper has a new role, the SOA Patch Developer
• Only allows compatible changes to be made
• patch.xml is created in project_directory/SOA/SCA-INF
to track changes
https://blogs.oracle.com/integration/entry/patching_soa_composite_instances_in
20
Patch running instances
How?
Oracle made a typo here
21
Patch running instances
How?
• Create a patch JAR with sca_validatePatch('http://localhost:8001', 'weblogic',
'welcome1', 'sca_HelloWorldWsAddrCaller_patch.jar')
– Jdeveloper
– sca_packagePatch
– ant-sca-package
• WLST sca_validatePatch and
sca_patchComposite can be used to
validate and apply a patch
22
Automatic Service Migration (ASM) support
• Leverages WebLogic ASM feature
• Requires datasource
for leasing
• On failure migratable singleton
services are transferred to other
server (JTA, JMS)
• Failing back to original server
is not supported
https://docs.oracle.com/middleware/1221/core/CMEDG/GUID-079347E5-9DF0-44A9-9BF3-AF7C13D631B3.htm#CMEDG-GUID-6594C41E-ED8C-4E56-8578-B67250961831
23
Integration Workload Statistics
• Comparable reports to DB AWR
(Automatic Workload Repository)
• Helps with performance tuning
and tuning
• Takes periodic snapshots
saves them to database
• Allows generation of reports
(XSLT, CSV, HTML)
https://docs.oracle.com/middleware/1221/soasuite/administer/GUID-266118F3-8B14-4896-8081-A0A489FD0CEC.htm
24
Integration Workload Statistics
• IWS reports metrics • The components supported
– System resource usage – BPEL Service Engine
– Composite statistics – EDN (Event Delivery Network)
– Statistics for internal system queues – Web Service Binding
– Statistics for synchronous and asynchronous business – File Adapter
processes – JMS Adapter
– Endpoint statistics – FTP Adapter
– DB Adapter
– AQ Adapter
– MQ adapter.
• Not yet supported
– REST binding
25
Integration Workload Statistics
26
Integration Workload Statistics
DataSource
statistics
JVM statistics
Composite activity
statistics
27
Integration Workload Statistics
Example process to measure
• Simple Hello World process
– Using REST Binding or SOAP
– Using untyped JSON or XML
message (in BPEL)
– Containing an XPATH assign
or a JavaScript assign
28
Integration Workload Statistics
Endpoints and wires
HelloWorldXML and HelloWorldXMLJS are SOAP services
HelloWorldJS and HelloWorldJSXML are JSON services
29
Integration Workload Statistics
Activities and processes
HelloWorldXML and HelloWorldXMLJS are SOAP services
HelloWorldJS and HelloWorldJSXML are JSON services
30
SOAPUI Results
Different results! Here pure JS is fastest!
31
In summary: IWS + SOAPUI
on JSON and JavaScript
In In BPEL Respons Speed Speed Speed Speed
binding BPEL assign e assign wire reply IWS SOAPUI
JSON JSON JS JSON ++ ++++ +++ ++++
JSON XML XPath JSON ++++ + ++++ ++
XML XML JS XML + ++ + +++
XML XML XPath XML +++ +++ ++ +
32
Oracle Integration Continuous Availability
In-memory SOA. Why?
• Improves performance and scalability (especially if SOAINFRA DB is the bottleneck)
• Reduces SOAINFRA database growth
• Less purging required
33
Oracle Integration Continuous Availability
In-memory SOA. How?
• Leverage Coherence cache to run your non-transactional (non-XA) business processes in memory
• Only for short-running processes
• Set at component level
• Persistence settings:
– Immediate. Same as In-memory not enabled
– Deferred. Audit data eventually ends up in
database
– Fault. Audit data only ends up in database in
case of a fault
34
Oracle Integration Continuous Availability
In-memory SOA
Transactions are not supported
• Do you need transactions when you
can use compensation handlers?
• Transactions spanning multiple services
are difficult anyway
• timeout settings on different levels
• XA datasources
• WS-AT headers and coördination,
node trust settings, etc
35
Oracle Integration Continuous Availability
In-memory SOA
36
New features for Developers
37
New features for developers
Already in 12.1.3
• Developer installer with integrated WebLogic / Derby server
• Service Bus development in JDeveloper
• New technology adapters: LDAP, Coherence, REST, UMS Adapters
• Composite templates and BPEL subprocesses
• Service Bus templates
• Updates XSLT and XQuery mapper (much improved with bundle patches 2 and 3!)
• Fault policy editor
• Encrypt/Decrypt Personally-Identifiable Info (PII)
http://www.oracle.com/technetwork/middleware/soasuite/overview/wp-soa-suite-whats-new-12c-2217186.pdf
38
New features for developers
New in 12.2.1
• JavaScript in SOA composites
• JavaScript in Service Bus
• REST support (native, end-to-end)
• Debugger enhancements
39
JavaScript support in SOA Suite
The JavaScript engine
• Rhino is an open-source implementation of JavaScript written entirely in Java
• Mozilla Rhino v1.7R3
– is included in JDK7
– can be used with JDK8 (SOA Suite 12.2.1) (e.g. http://andreas.haufler.info/2015/04/using-rhino-with-java-8.html)
– ECMAScript 5 support
– Partial JavaScript 1.8 support
• ECMAScript 5 vs JavaScript 1.8
– JavaScript 1.8 is Mozilla's implementation of ECMAScript 5 with added features
– a superset of the ECMAScript specification
• Rhino 1.6 and greater supports ECMA-357 ECMAScript for XML (E4X)
– Can be used server-side in SOA Suite 12.2.1
– Native XML in JavaScript
40
JavaScript support in SOA Suite
Why Rhino and not Nashorn
• "ECMAScript 5.1 language specification doesn't define multithreading semantics for programs
written in the language; they are inherently single threaded. If we were to make them thread safe,
we'd be sacrificing single threaded performance for a behaviour that falls outside of the
specification.“
• Nashorn library internals themselves are thread safe, but JavaScript programs executing within a
single engine instance are not thread safe. This is different from Rhino. Using Nashorn, you
probably need to take steps to protect your ScriptEngine from concurrent access, which might
explain the unpredictable behavior you observe.
https://blogs.oracle.com/nashorn/entry/nashorn_multi_threading_and_mt
41
JavaScript support in SOA Suite
E4X
• var languages = new XML( • var languages =
'<languages type="dynamic"> <languages type="dynamic">
<lang>JavaScript</lang> <lang>JavaScript</lang>
<lang>Python</lang> <lang>Python</lang>
</languages>‘ </languages>;
);
• var c = languages.lang.length()
• languages.lang += <lang>Ruby</lang>;
• var a = 2;
var b = <foo bar={a}>"hi"</foo>;
42
Composite REST Binding
• First define a REST binding
43
JavaScript support in SOA Suite
Composite REST Binding
• Create a REST Method
44
JavaScript support in SOA Suite
Composite REST Binding
• Define the response
45
JavaScript support in SOA Suite
Create BPEL based on binding
• Select the REST method
46
JavaScript support in SOA Suite
Set default expression language
• Set the default expression language
47
JavaScript support in SOA Suite
Activities
• Use JavaScript in activities
48
JavaScript support in SOA Suite
Seeing it work
• EM Fusion Middleware Control, Test service
49
JavaScript support in SOA Suite
Good to know
• Variable scope is process
• Payload validation causes NullPointerException
50
JavaScript support in SOA Suite
Good to know
51
New features for developers
JavaScript in Service Bus
REST Branch
• Native REST where the interface is
not described at design-time
(Un-typed)
• JavaScript action
52
New features for developers
The debugger. 12.1.3 recap
• Automatically enabled for development environments on default port 5004
• Does not work on production mode servers or clusters
• One client at a time and one instance of a process
• Allows you to debug
– BPMN
– BPEL
– Service Bus pipelines
– Binding components
– Service components
http://docs.oracle.com/middleware/1221/soasuite/develop/GUID-B0A1C104-E021-4B0C-90DE-1745752C33BC.htm#SOASE88041
53
New features for developers
The debugger. 12.1.3 recap
54
New features for developers
Debugger enhancements in 12.2.1
• XSLT debugger. Remote debugging of XSLT’s! (in BPEL, Mediator, Service Bus)
55
New features for developers
Debugger enhancements in 12.2.1
• Conditional breakpoints • Exception breakpoints
56
Useful 12.2.1 resources
• Pre-build SOA Suite 12.2.1 virtual machine
– http://www.oracle.com/technetwork/middleware/soasuite/learnmore/soa-vm-2870913.html
Oracle Enterprise Linux (64-bit) EL 6 Update 7
Oracle Database, Enterprise Edition 12.1.0.2
Oracle SOA Suite 12.2.1 (includes Service Bus, B2B, Oracle
Enterprise Scheduler (ESS) and Business Activity Monitoring)
Oracle Managed File Transfer 12.2.1
Oracle Stream Explorer 12.2.1
Oracle JDeveloper 12.2.1
Sun Java 1.8.0_51-b16 (64-bit)
• Continuous Availability information
– https://docs.oracle.com/cd/E55108_01/doc.1213/e56762/wlsuite_options.htm#sthref62
– https://blogs.oracle.com/integration/entry/introducing_soa_continuous_availability_option
57
What is coming
(announced by Oracle @OOW)
• Multitenancy support for SOA Suite • B2B
– Data isolation via RDBMS PDB – In the cloud (ICS, SOA CS as API’s)
– Resource isolation via WLS Partitions and JVM enhancements – Self service
– Metadata isolation – separate tenant composites. Also, Shared – Improved monitoring
composites.
– Configuration Isolation – separate tuning, datasources , JMS • EM support
destinations etc.
– Service Bus Service Heat Map
– Administrative isolation
– Web service beacon test
• Real-Time Integration Business Insight
– Allows business users to define milestones
– Architect can map milestones to process steps
– BAM dashboards provide insight
58
Real-Time Integration Insight
B2B 12.2.1
• Endpoint Cloning
• FIPS Compliance
• ALTA Skin
• PGP Support
• MLLP Sync-Request-Reply
• T2P Incremental
• Endpoint Throttling
• Resiliency improvements
• Performance improvements
BAM 12.2.1
• New “Alta” Look and Feel • Version 2 of SOA & BPM Process
• New Charts: Uptakes new Analytics Dashboards
version of Oracle standard • Opaque Query
charts! • Parameter Support in Custom
• Custom Function Support for Functions
Alerts & KPIs • Performance Improvements
BAM 12.2.1
BAM 12.2.1
BAM 12.2.1
64
BAM 12.2.1
Questions
@MaartenSmeetsNL
https://nl.linkedin.com/in/smeetsm Download at http://bit.ly/1TPmoKB