Five Cool Use Cases for the Spring component of the Oracle SOA Suite
Guido Schmutz
UKOUG Conference 2012
3.12.2012
BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Guido Schmutz
•
Working for Trivadis for more than 15 years
•
Oracle ACE Director for Fusion Middleware and SOA
•
Co-Author of different books
•
Consultant, Trainer Software Architect for Java, Oracle, SOA and EDA
•
Member of Trivadis Architecture Board
•
Technology Manager @ Trivadis
•
More than 20 years of software development experience
•
Contact: guido.schmutz@trivadis.com
•
Blog: http://guidoschmutz.wordpress.com
•
Twitter: gschmutz
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Agenda
1.
Introduction
2.
How does the Spring component work
3.
The use cases
4.
Summary
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Different strategies for integrating Java in SOA Suite
Java Embedding in BPEL
Java Callout in Mediator/Oracle Service Bus
Custom BPEL/XPATH Functions
JAX-WS or JAX-RS Web Services (SOAP / REST services)
EJB Services
JMS Adapter/Transport and Message Driven Bean (MDB)
Custom JCA Adapter or Custom OSB Transport
Spring Component
“When Java meets SOA”: https://blogs.oracle.com/rammenon/entry/java_and_soa_suite
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
SOA Suite 11g Overview
BPA
Business View
Shared BPMN
Model
BPMN 2.0,
BPEL
Rich End User Interaction
Workspace Process Portal
(WC spaces)
MS Office
Web based customization
BPM Studio
(with Business and IT views)
B2B
BAM
Process
Analytics
Proc Cubes
Optimized binding
Process Composer
BPEL BPMN
Human
Workflow
(+AMX, AG,
Orgn)
Unified Runtime
Business
Rules
Common JCA-based connectivity infrastructure
Mediator
Policy Manager
Spring
Oracle Service Bus
EM console
+BPMN Screens
Repository
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Spring Service Component
The Spring Framework is a lightweight container using “plain old Java objects” (POJOs)
WebLogic SCA enables the usage of the Spring Framework and to expose components as SCA services and references
SCA extends Spring framework capabilities
•
Publish spring beans as SCA component services
•
Provide references to Spring beans wired to services of other components
Following types of component integrations are supported
•
Java components to WSDL components
•
WSDL components to Java components
•
Java components to Java components
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Agenda
1.
Introduction
2.
How does the Spring component work
3.
The use cases
4.
Summary
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Hello World
The HelloWorldImpl POJO used inside a Spring component
Lessons learnt: Make sure to compile classes before wiring!
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
<sca:service> Element
Declares a Spring bean that SCA exposes as a service
Takes the following attributes:
• Name
§ the name of the service (required)
• Type
§ The fully qualified Java type of the Java class to be exposed as an SCA service
(required)
• Target
§ The bean to be exposed as a service (required)
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
<sca:reference> Element
Declares a Spring bean representing an SCA service external to the Spring application context
Takes the following attributes:
• Name
§ The name of the reference (required)
• Type
§ The fully-qualified Java type of the interface or class representing the remote service
(required)
• Default
§ The target bean for the reference if none is specified (optional)
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Using the Predefined Beans
The following spring beans are predefined in SOA Suite:
• headerHelperBean – for getting an setting header properties
• instanceHelperBean – for getting Instance ID of composite and component, name of the Spring service component
• loggerBean – for providing context-aware logging message
You can also define your own Spring beans globally => see use case 3
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Agenda
1.
Introduction
2.
How does the Spring component work
3.
The use cases
§
Case 1 - Configuration
4.
Summary
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 1 – Configuration: Within SOA Suite
Use Case: Need configuration properties which are changeable at runtime
Within a SCA Composite preferences can be declared
•
Has to start with bpel.preference
Use ora:getPreference('greetingMessage') from within BPEL
Restriction : Only scalar values are supported! Can only be accessed from a
BPEL component.
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 1 – Configuration: Within SOA Suite
Values can be changed through System MBean Browser in EM
§ oracle.soa.config > Server : soa_server1 > SCAComposite > your_project >
SCAComposite.SCAComponent > your bpel_process
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 1 – Configuration: using Spring and JMX
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 1 – Configuration: using Spring and JMX
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 1 – Configuration: using Spring and JMX
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Agenda
1.
Introduction
2.
How does the Spring component work
3.
The use cases
§
Case 2 – Dynamic Routing
4.
Summary
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 2 – Dynamic Routing: Using Spring bean for subscription
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 2 – Dynamic Routing: Using Spring bean for subscription
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 2 – Dynamic Routing: Using Spring bean for subscription
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 2a – Dynamic Routing: Using Spring bean for subscription
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 2a – Dynamic Routing: Using Spring bean for subscription
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Agenda
1.
Introduction
2.
How does the Spring component work
3.
The use cases
§
Case 3 – NoSQL
4.
Summary
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 3 – NoSQL: What is NoSQL?
NoSQL is a new class of databases
They don‘t use the relational data model and thus don‘t use SQL
Tend to be designed to run on cluster
Schema-Less - Don‘t have a fixed schema, allowing to store any data in any record
Different types of NoSQL databases
•
Key/value
•
Column Family
•
Document
•
Graph
For more info, attend my other presentation: NoSQL Databases for Implementing Data Services –
Should I Care? – Tuesday, 15:10 – 16:10 – Hall 10a
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 3 – NoSQL: MongoDB Integration through Spring
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 3 – NoSQL: MongoDB Integration through Spring
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 3 – NoSQL: MongoDB Integration through Spring
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 3a – NoSQL: MongoDB Logging Bean
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 3a – NoSQL: MongoDB Logging Bean
Define bean in the global spring context (custom predefined bean) so that logging is globally available
1.
Add the bean definition here
§ SOA_HOME/soa/modules/oracle.soa.ext_11.1.1/classes/ springse-extension-global-beans.xml
2.
Add the corresponding classes in either the lib or classes directory
3.
Run the ant script and restart server (more information in readme.txt
)
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 3a – NoSQL: MongoDB Logging Bean
Usage of the custom bean in the global spring context
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Agenda
1.
Introduction
2.
How does the Spring component work
3.
The use cases
§
Case 4 – Twitter
4.
Summary
Please follow me on twitter to get the full experience J
Twitter User: gschmutz
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Send a Twitter message to @gschmutz with the hash tags
#ukoug and #springtalk …… to get the link to the slides
@gschmutz #ukoug #springtalk Oracle SOA Suite and
Spring rocks!
@gschmutz #ukoug #springtalk
@gschmutz #ukoug #springtalk please!
@gschmutz #ukoug #springtalk this is really cool!
@gschmutz #ukoug #springtalk this is so wrong!
Send me that electronic trash!
@gschmutz Cool stuff dude! Pls send me the link to the slides! #ukoug #springtalk
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 4 – Twitter: Send an Update Message
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 4 – Twitter: Send an Update Message
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 4 – Twitter: Send an Update Message
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 4a – Twitter: Process Mentioned Messages and send message with link to slides J
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Agenda
1.
Introduction
2.
How does the Spring component work
3.
The use cases
§
Case 5 – …
4.
Summary
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Case 5: so many more ideas …. And not enough time
•
Invoking Spring Batch
•
Invoking Hadoop Processing
•
Groovy Script integration (i.e. XML ó JSON)
•
Read/Write Excel
•
Create PDF
•
Submit to Evernote
•
Message Enrichment (Mediator cannot do that)
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Agenda
1.
Introduction
2.
How does the Spring component work
3.
The use cases
4.
Summary
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Summary
The Spring component is a nice way to extend the functionality of the SOA
Suite and the other service engines
Use cases for it are endless ….
Only use the Spring component if no out-of-the-box feature in the SOA
Suite exists
Make sure that you test the Java and Spring stuff externally first
Only Spring Framework 2.5 …
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012
Trivadis
Guido Schmutz guido.schmutz@trivadis.com info@trivadis.com
www.trivadis.com
BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN
Where and When Should I Use the Oracle Service Bus
Tuesday 4th December at 09:55 - 10:55 - Hall 8b
NoSQL Databases for Implementing Data Services – Should I Care?
Tuesday 4th December at 15:10 - 16:10 - Hall 10a
2012 © Trivadis
Five Cool Use Cases for the Spring component of the Oracle SOA Suite
3.12.2012