At OOW 2015 Oracle has released SOA Suite 12.2.1. This new release provides several interesting new features for developers such as end-to-end REST support, JavaScript support and an XSLT debugger. There are also several new features useful for the operations department such as Integration Workload Statistics, Circuit breaker, In-Memory SOA and WebLogic parallel deployments. In this presentation I will explain and demonstrate these new features and provide several use-cases were customers can greatly benefit by implementing them. This presentation is especially useful for developers, people in operations and architects to help them realize the benefits of implementing SOA Suite 12.2.1.
2. Introduction
• About AMIS
– Located in the Netherlands
– Oracle Award winning partner
• 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)
@MaartenSmeetsNL
https://nl.linkedin.com/in/smeetsm
3.
4. Agenda
• New features for the LOB user
– Enterprise Manager (ALTA style)
– Service Bus Console (ALTA style)
– BAM, B2B, MFT new features
• New features for developers
– JavaScript in SOA composites
– JavaScript in Service Bus
– REST support (native, end-to-end)
– Debugger enhancements
• New features for operations
– Circuit Breaker
– Composite instance patching
– Integration Workload Statistics
(IWS)
– In-Memory SOA
– Automatic Service Migration (ASM)
9. • Auto Purge: Automatically purge old data past
the retention point periodically on schedule.
AUTOMATED OPERATIONS.
• Modularity Profile: Reduce startup time and
memory by starting up only components used
(selected by selecting a profile). PERFORMANCE
• 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.
• Work Managers: Switch to work managers to
simplify and improve thread tuning. SIMPLIFIED
TUNING.
• Flow Trace: Switch to flow trace where multiple
composites are shown in a single trace for better
troubleshooting. SIMPLIFIED TROUBLESHOOTING.
New features for operations
Already in 12.1.3
10. • 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
– Circuit Breaker – Improved resiliency
when downstream services go down.
10
New features for operations in 12.2.1
Oracle Integration Continuous Availability
A license to Oracle WebLogic Server Continuous Availability
is a prerequisite to license and use Oracle Integration Continuous
Availability. If using only In-Memory SOA, a license to Oracle
WebLogic Server Continuous Availability is not required.
11. 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. 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. 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.
17. 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. 18
Patch running instances
What?
https://blogs.oracle.com/integration/entry/patching_soa_composite_instances_in
Compatible changes include
• Non-schema related XSLT changes
• Changes to fault policy, sensor data, and
analytics data
• Compatible BPEL changes such as sync/async
invoke, transformation activity, assign
operations, etc.
• JCA Adapter configuration properties
• Modifications of token values in composite
references
Incompatible changes include
• Deleting or renaming composite artifacts
• Updating binding properties
• Changes to a WSDL and Schema definition
• Changes to XQuery mappings
• Changes to BPEL receive inputs, structured
activities, assign mapper source/target/skip
conditions
21. 21
Patch running instances
How?
• Create a patch JAR with
– Jdeveloper
– sca_packagePatch
– ant-sca-package
• WLST sca_validatePatch and
sca_patchComposite can be used to
validate and apply a patch
sca_validatePatch('http://localhost:8001', 'weblogic',
'welcome1', 'sca_HelloWorldWsAddrCaller_patch.jar')
22. 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. 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. 24
Integration Workload Statistics
• IWS reports metrics
– System resource usage
– Composite statistics
– Statistics for internal system queues
– Statistics for synchronous and asynchronous business
processes
– Endpoint statistics
• The components supported
– BPEL Service Engine
– EDN (Event Delivery Network)
– Web Service Binding
– File Adapter
– JMS Adapter
– FTP Adapter
– DB Adapter
– AQ Adapter
– MQ adapter.
• Not yet supported
– REST binding
27. 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
31. 31
In summary: IWS + SOAPUI
on JSON and JavaScript
In
binding
In
BPEL
BPEL
assign
Respons
e
Speed
assign
Speed
wire
Speed
reply IWS
Speed
SOAPUI
JSON JSON JS JSON ++ ++++ +++ ++++
JSON XML XPath JSON ++++ + ++++ ++
XML XML JS XML + ++ + +++
XML XML XPath XML +++ +++ ++ +
32. 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. 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. 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
37. 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. 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. 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. 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. 41
JavaScript support in SOA Suite
E4X
• var languages = new XML(
'<languages type="dynamic">
<lang>JavaScript</lang>
<lang>Python</lang>
</languages>‘
);
• var c = languages.lang.length()
• languages.lang += <lang>Ruby</lang>;
• var a = 2;
var b = <foo bar={a}>"hi"</foo>;
• var languages =
<languages type="dynamic">
<lang>JavaScript</lang>
<lang>Python</lang>
</languages>;
51. 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. 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
54. 54
New features for developers
Debugger enhancements in 12.2.1
• XSLT debugger. Remote debugging of XSLT’s! (in BPEL, Mediator, Service Bus)
55. 55
New features for developers
Debugger enhancements in 12.2.1
• Conditional breakpoints • Exception breakpoints
56. 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
• 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
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)
57. 57
What is coming
(announced by Oracle @OOW)
• Multitenancy support for SOA Suite
– Data isolation via RDBMS PDB
– Resource isolation via WLS Partitions and JVM enhancements
– Metadata isolation – separate tenant composites. Also, Shared
composites.
– Configuration Isolation – separate tuning, datasources , JMS
destinations etc.
– Administrative isolation
• Real-Time Integration Business Insight
– Allows business users to define milestones
– Architect can map milestones to process steps
– BAM dashboards provide insight
• B2B
– In the cloud (ICS, SOA CS as API’s)
– Self service
– Improved monitoring
• EM support
– Service Bus Service Heat Map
– Web service beacon test
59. • Endpoint Cloning
• FIPS Compliance
• ALTA Skin
• PGP Support
• MLLP Sync-Request-Reply
• T2P Incremental
• Endpoint Throttling
• Resiliency improvements
• Performance improvements
B2B 12.2.1
60. • Version 2 of SOA & BPM Process
Analytics Dashboards
• Opaque Query
• Parameter Support in Custom
Functions
• Performance Improvements
• New “Alta” Look and Feel
• New Charts: Uptakes new
version of Oracle standard
charts!
• Custom Function Support for
Alerts & KPIs
BAM 12.2.1
Recent awards: Oracle EMEA Middleware Partner of the Year, 3 times Oracle Netherlands Middleware partner of the year. One of the rare moments in the Netherlands when it isn’t raining.
For developers: mobile enablement
Step over, step into
T2P = transition to production
FIPS = Federal Information Processing Standard
MLLP = Minimal Lower Layer protocol (HL7)
PGP = Pretty Good Privacy
Custom function support -> parameters in calculated fields and calculated fields in alerts