overview of oracle soa suite11g
DESCRIPTION
The Oracle SOA Suite consists of a number of components that you can use to create services and composite applications. These components all have specific use cases and can be mixed and matched in your application. In this presentation the following components are explained: BPEL to orchestrate services and model processes; Spring component to create java components; Mediator component as an ‘in application’ bus functionality, including sequencing; Business rule component for declarative business rules management Human task component for human workflow; Notification services to communicate; WebService manager for security and policies; MDS to store common artefacts. These components are discussed individually, and compared with each other and alternative solutions like Oracle BPM, business rules in the database etc. Common use cases and best practices are discussed as well. After this session delegates have a thorough understanding of what Oracle SOA Suite offers and when to use what component.TRANSCRIPT
1 | 35
Overview of SOA Suite 11g
Lonneke Dikmans October 2013 | OTN Nordic tour
2 | 35
Introduction
Agenda ● Introduction to SOA Suite 11g ● Components ● Other components ● Conclusion
About me
● Managing partner at Vennster ● Oracle Ace Director ● Working in Oracle Middleware since 2001
3 | 35
Introduction to SOA Suite 11g | FMW
4 | 35
Introduction to SOA Suite 11g | SCA
Composite ● Consists of 1 or more components ● Is exposed as a service ● References other services ● Components are wired together ● Different binding types ● Properties can be injected
5 | 35
Introduction to SOA Suite 11g | Overview
6 | 35
Introduction to SOA Suite 11g | Composite
7 | 35
Agenda
● Introduction to SOA Suite 11g ● Components • BPEL • Spring component • Mediator • Business Rules • Human Task
● Other components ● Conclusion
8 | 35
Components | BPEL
Use ● Composite services ● Business processes
Alternative
● OSB ● BPMN (BPM Suite)
9 | 35
Components | BPEL example – business process
10 | 35
Components | BPEL example – composite service
11 | 35
Components | BPEL best practices
Use ● Claim check pattern ● Simple variables, not big objects ● Test for null in XPath ● Testing framework ● Error handling Common mistakes ● Programming in BPEL
• Translating business rules to process flow • Calculations
● Long running transactions ● Using it as a data cache ● User interface logic
12 | 35
Components | Spring
Use ● Calculations ● Reuse libraries /
existing components
Alternative ● Deploy a bean (reference)
13 | 35
Components | Spring example
14 | 35
Components | Spring example
15 | 35
Components | Spring best practices
Do ● Use Java quality tools (Unit testing, Findbug etc) ● Spring or external service
Common mistakes
● Java inside BPEL -> requires restart of server ● Java inside OSB flow -> requires restart of server ● Flow logic in Spring component
16 | 35
Components | Mediator
Use ● Routing ● Transformation ● Sequencing of messages
Alternative ● BPEL for routing ● OSB ● Queuing (AQ)
17 | 35
Components | Mediator example
18 | 35
Components | Mediator example
19 | 35
Components | Mediator best practices
Do ● Think about transactions ● Think about parallel versus serial routing rules
Common mistakes ● Put everything in BPEL (Not use mediator) ● Use OSB as part of your composite
20 | 35
Components | Business rules
Use ● Rules depending on
Attributes of Object ● Edit outside of
composite
Alternative ● Case management ● Java ● BPEL ● Mediator ● Case management (BPM)
21 | 35
Components | Business rules example
22 | 35
Components | Business rules example
23 | 35
Components | Business rules best practice
Do ● Create dictionaries ● Test your rules, this is *NOT* trivial!
Common mistakes ● Programming in business rules ● Ignore them because it sounds complicated ● Treat them as ‘regular if-then-else’
24 | 35
Components | Human Task
Use ● Human step ● Deadline ● Approval & escalation ● Notifications
Alternative ● User interface logic ● N/A ● BPEL ● N/A
25 | 35
Components | Human Task example
26 | 35
Components | Human Task example
27 | 35
Components | Human Task best practices
Use ● Claim check pattern ● Workflow patterns ● Notification and escalation
Common mistakes ● Generate the UI from the task definition ● Small steps
28 | 35
Agenda
● Introduction to SOA Suite 11g ● Components ● Other components • Notification Service • Web services manager • MDS
● Conclusion
29 | 35
Other components | Notification Service
30 | 35
Components | Notification service - adapter
Use ● In BPEL flow ● In Human Task ● Adapter(11.1.1.8) ● Pick channel
31 | 35
Other components | Web Services Manager
32 | 35
Other components | Web services manager
���<reference name="SubsidieGegevensService-1.2"> <!--Add search and replace rules for the binding properties--> <binding type="ws"> <attribute name="port"> <replace>http://overijssel.nl/APP/MAT/SUB/SubsidieGegevensService/Service/v1.2#wsdl.endpoint(SubsidieGegevensServiceSoapHttpBindingQSService/SubsidieGegevensServiceSoapHttpBindingQSPort)</replace> </attribute> <attribute name="location"> <replace>https://server:0000/SubsidieGegevensService-1.2/SubsidieGegevensService-1.2/SSL?wsdl</replace> </attribute> <wsp:PolicyReference orawsp:category="security" orawsp:status="enabled" URI="oracle/wss_username_token_over_ssl_client_policy"/> <property name="csf-key"> <replace>BPMS_USER</replace> </property> <property name="weblogic.wsee.wsat.transaction.flowOption"> <replace>WSDLDriven</replace> </property> </binding> </reference>
33 | 35
Other components | Meta data Services
34 | 35
Agenda
● Introduction to SOA Suite 11g ● Components ● Other components ● Conclusion
35 | 35
Conclusion Component Use Alterna:ves
BPEL Composite services Business process
OSB BPMN
Spring Calcula:ons Reuse of libraries & components
Reference an external service
Mediator Rou:ng Transforma:on Sequencing
BPEL (in composite) BPEL ac:vity calling XSL AQ
Business Rules Isolated rules Proper:es
Human Task Human ac:vity Workflow
ADF Flows BPEL flows
36 | 35
Overview of SOA Suite 11g
Lonneke Dikmans October 2013 | OTN Nordic tour