confidential deep dive: a soa application, end-to-end deep dive: a soa application, end-to-end
TRANSCRIPT
CONFIDENTIAL
Deep Dive:A SOA Application, End-to-End
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Company Website:http://www.avout.com
Author’s Website:http://fourthmonth.wordpress.com
2
Deep Dive - A SOA Application, End-to-End
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Slides and Demo instructions
Presentation SlidesStep-by-Step Demo Instructions
Videos will be provided at:
www.avout.com
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End What this presentation is *NOT*
What this presentation is *NOT*:Java/XML Tutorial
JDeveloper TutorialWebLogic TutorialInstallation Guide
Administration Guide
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL5
According to neuroscientist Beau Lotto, the creation of all new perceptions begins in the same way, with a single
question:
Deep Dive - A SOA Application, End-to-End Why?
"Why?"
"Why" is, in that sense, the most dangerous word in history. As soon as you ask that question, you open up the possibility of change. So asking "why" may be the hardest
thing for people to do.
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL6
Introduction
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL7
SOA is *NOT* PowerPoint-Friendly
Deep Dive - A SOA Application, End-to-End SOA is *NOT* PowerPoint-Friendly
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL8
Why ask why?– You already know the
“What?” and the “Who?”– Google is great for the
“How?”– Answering the question:
“Why?” - tough– With SOA, a *lot* of “Whys?”
will have to be answered
Deep Dive - A SOA Application, End-to-End Why?
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Why SOA?
Why SOA?
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Why SOA?
Brief history of n-tier architecturePhase 1: Server <-> Dumb TerminalPhase 2: Server <-> PC
(Client/Server)Phase 3: Server <-> Web Server <->
Client (n-tier architecture)Phase 4: Distributed computing
(here’s where SOA comes in)
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Why SOA?
Companies need to be agile
Systems need to be agile
Systems need to support the business
SOA is a philosophy, not a product
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Why SOA?
Functionality “exposed” through web services
– How to manage and monitor exposed services?
– How to integrate internal and external services into applications?
– How can code and functionality be re-used?
SOA!
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Basic SOA Design Principles
Basic SOA Design Principles:1. Service contract – Services adhere to a communications
agreement as defined collectively by one or more service description documents
2. Loose coupling – Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other
3. Abstraction – Beyond descriptions in the service contract, services hide logic from the outside world
4. Autonomy – Services have control over the logic they encapsulate
See “Service-Oriented Architecture” by Thomas Erl
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Basic SOA Design Principles
Basic SOA Design Principles (Continued):5. Reusability – Logic is divided into services with the intention of
promoting reuse6. Statelessness – Services minimize resource consumption by
deferring the management of state information when necessary 7. Composability – Services are effective composition participants,
regardless of the size and complexity of the composition8. Discoverability – Services are supplemented with communicative
meta data by which they can be effectively discovered and interpreted
See “Service-Oriented Architecture” by Thomas Erl
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services and Composite Applications
Web Services – a black box of functionality
Composite Applications – like a jigsaw puzzle of web services
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Service Definition
Service:
Something useful a provider does for a consumer
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Service Elements
Service ElementsElement Description Restaurant Example*Contract Specifies what
consumers can expect from the service
Quality, price, availability, order time, etc.
Interface How you can use & access the service
Waitress, languages on menu, etc.
Implementation The realization of the service
Chef's name, what tools he/she uses, etc.
*SOA Made Simple - Dikmans
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Technology Stack
Technology Stack
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Technology Stack
End-User: Chrome Browser
Middleware: Oracle WebLogic w/SOA Server, BAM Server, OSB
Data Source: Oracle Database
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Domain
Deep Dive - A SOA Application, End-to-End Weblogic Architecture
Admin Server Managed Server
Managed Server
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
SOA_Domain
Deep Dive - A SOA Application, End-to-End Weblogic Architecture
Admin Server SOA_Server
BAM_Server
OSB_Server
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Oracle JDeveloper Versions
Oracle JDeveloper (April 2014)12.1.2.0.011.1.2.411.1.1.7.111.1.1.711.1.1.6
Latest & Greatest – BUT No SOA
ADF Mobile – BUT No SOA
Cloud – BUT No SOA
BINGO – This is what we want!
Cloud – No Local Deployment
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Why JDeveloper?
Why Oracle JDeveloper?1) Tools (Editors, Wizards, Frameworks)2) Integration
A. DatabaseB. WebLogicC. Development Tools (Maven, Ant, Source
Control, etc.)3) Updates4) Cost
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Why JDeveloper?
Other Java IDEs:1) Eclipse2) IntelliJ3) NetBeans4) JCreator
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services
Why do Web Services exist?
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services
Technology that enabled the internet as we know it: TCP/IP
Technology that enables distributed computing: Web Services
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services
• Uses XML to exchange info with other software using common protocols
• Encapsulates a specific task
• Self-describing• Discoverable
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services
Competing technologies:1) CORBA 2) DCOM 3) RMI
Key differentiators: Web Services work over HTTP Eliminates many firewall issues Lingua franca: XML Composite apps can use web services developed
on any* platform in any* language
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services
Web Services Wrapper (XML that describes how to call the “Code that does something”):
Code that does something(can be virtually any language)
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services: Design
Top-down or bottom up?
Top-down steps:1) Identify business services2) Identify information services3) Identify technical services
Risk: Services might be too abstract
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services: Design
Top-down or bottom up?
Bottom-up steps:1) Identify existing IT assets2) Derive services from existing pieces
Risk: Lots of customization
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services: Design
Service design steps: 1) Define functionality 2) Design interface (think PL/SQL
Package specification)3) Design contract 4) Design implementation
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services: Design
Granularity – Should their be one on-boarding service or a service for each step?
How granular should a release be? 1) Big enough to provide value on its own 2) Small enough that to change it wouldn't affect the
entire IT Landscape 3) Derived from functionality 4) Hand-in-hand w/transaction boundaries; there is no
one correct granularity
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services: SOAP v REST
2 types of web services:
1) SOAP - uses WS-* standards; interface describes:a) available operations b) input/output c) technology binding
SOAP returns XML
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Web Services: SOAP v REST
2 types of web services:
2) REST - formal model based on resources: a) send a request b) returned resource shows options for next step(s)
REST relies on get/put/post/delete (look familiar?)REST can return HTML, XML, JSON, etc.
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Composite Applications Revisited
Web Services – a black box of functionality
Composite applications – like a jigsaw puzzle of web services
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End (Absurdly Simple) Web Service Creation Demo
(Absurdly Simple)Web Service Creation with
JDeveloper Demo
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Composite Applications Revisited
An SOA composite is an assembly of:1) Services2) Service Components3) References
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
Why is XML (and XSDs and WSDLs) everywhere?
(or the Nurses and Needles analogy)
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
6,000 human languages
8,000 computer languages
How are programs supposed to interact with other programs?
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
Standard needed that’s extensibleXML describes data itself, not just how
to display itSource program not only sends data, but
also sends “what” it’s sending
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
Fully qualified XML element:1) Local name2) Namespace (think package name in
PL/SQL or schema name in SQL)
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
For SOA, XML is used for:1) Service definitions2) The data structure of messages3) Configuration of the run-time infrastructure4) Contents of messages5) SOAP envelope that wraps the message
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
All modern languages have XML operations for:1) Parsing2) Data Binding3) Validating4) Querying5) Transforming
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
Well-formed XML Document has:1) Single root element2) Tree structure3) Text content4) Attributes
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
XSD – data-modeling language for describing the structure of XML documents
When XML is sent to a Web Service, the XSD is referenced through the WSDL
XSDs specify:1) Structure2) Types3) Rules/Constraints
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
What’s a WSDL?
XML file that defines:1) Interface for:
A. Web ServicesB. Java InterfacesC. Database APIsD. RESTful Services
2) Implementation location
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
WSDL structure
portType1) Named set of abstract operations2) Abstract messages
A. InputB. OutputC. Fault
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
WSDL structure
bindingSpecifies the specific operations in the service are callable via specific protocol and data formatProtocols include: SOAP, HTTP, MIME, JCA, et al.
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
WSDL structure
serviceAssigns physical address details to each of the binding elements
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML, XSD and WSDL
WSDL files
Can be generated by SOA Suite design-time environment
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End XML File Demo
Demo:“Walking Through”
XML files
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End 10,000 Foot Perspective
Time to step back and gain some
perspective
Canonical form, data that has been canonicalized into a completely unique representation, from a previous form that had more than one possible representation
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Oracle SOA Components
Oracle SOA Components:1) Mediators2) Adapters3) BPEL4) Human Tasks5) Business Rules6) Service Bus*7) Business Activity Monitoring*8) Event Delivery Network*9) Governance*
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
SCA Wrapper
Deep Dive - A SOA Application, End-to-End Service Component Architecture
Service Component Architecture (SCA):1) Every service component publishes its own
contract
Any Composite Element
Web Services Wrapper (XML that describes how to call the “Code that does something”):
Code that does something(can be virtually any language)
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Service Component Architecture
Service Component Architecture (SCA):2) Services are assembled into a composite
application that addresses a particular set of business requirements
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Service Component Architecture
Service Component Architecture (SCA):3) Service components can include:
A. BPELB. JavaC. Rule EngineD. Worklflow engineE. Other SCA-based composite applications
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Service Component Architecture
Service Component Architecture (SCA):3) Developers specify functional link
4) SCA container facilitates communication5) Loosely-coupled
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Service Component Architecture: 5 Basic Parts
5 Basic SCA Parts:1) Composite: deployment unit 2) Component: provides logic to accomplish a task 3) Service: entry-point into component 4) Reference: refers to external services outside the
component 5) Wire: connects services, components and references
and shows dependencies, but not flow of control
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Composite Applications Revisited
Composite Applications with JDeveloper:
1) SCA-Compliant2) Service components
wired via WSDL contracts3) Invoked by sending XML
message to a URL
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Composite Applications Revisited
Composite Applications:4) SOA Suite:
A. MediatorsB. AdaptersC. BPEL/BPMND. Human TasksE. Business Rules
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Composite Applications Revisited
What actually makes up a Composite Application?1) WSDL/XSD – describes interfaces & service
components2) Programs referenced by BPEL3) Files that describe wiring between SCA components4) Definitions for how XML is transformed between
components5) Adapter configuration details
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Mediator
Mediator:
In charge of interconnecting, within an SOA composite application, components that expose different interfaces. The Mediator can also perform duties such as filtering and making routing decisions.
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Adapters
Features of Adapters:• Support for open standards• Uses native APIs• Facilitates real-time and bidirectional connectivity• Supports real-time event notifications• Provides easy-to-use design-time tools that use a
GUI to configure and administer adapters
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Adapters
What adapters come with Oracle SOA Suite?1) Databases (see next slide)2) File system3) FTP4) JMS5) Applications (next slide)6) B2B
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Adapters
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Mediator Demo
Mediator/Database Adapter Web Service Creation with
JDeveloper Demo
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End BPEL
BPEL:1) Invokes Web Services2) Performs Process Logic3) Handles Faults4) Coordinates Transactions5) Deals with Events and Timeouts
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Why BPEL?
Why BPEL?1) Separates business process definition from implementation 2) Designed for long-running processes 3) Support for synchronous and asynchronous interaction 4) Fault handling and compensating transactions 5) Extensible language (vendors can expand)6) Support for parallel flows and conditional branching7) Uses Open Standards
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Why BPEL?
BPELTop-level XML element: processBPEL elements: activitiesCalled Web Services: partnerlink activityCalling the Partnerlink: invoke activityWeb service calling the BPEL process: receive activitySetting variable values: assign activityBranching logic: switch activityParallel execution: flow activityManaging faults: faulthandlers activity
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End BPEL Demo
BPEL Creation with JDeveloper Demo
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Human Tasks
Human Tasks:1) Human Workflow Service - responsible for all
aspects of executing a workflow consisting of one or more human tasks
2) Worklist Application - provides a web-based user interface for working with the tasks created as part of the human workflow
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Human Tasks Steps
Typical Human Task Steps:1) Create Human Task Definition in Human Task
Editor 2) Associate Human Task Definition with BPEL
process 3) Generate the Task Form
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Human Tasks Vocabulary
Human Tasks Vocabulary:Participant: user or set of users in the assignment and
routing policy definition represented with a people icon Participant Types:
Users: agents that can be assigned tasksGroups: collection of individual users who can claim and act upon a task
Task: work that must be done by a user
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Human Tasks Vocabulary
Human Tasks Vocabulary:Routing types:1. Single: simple case where a participant maps to a single user or
group2. Parallel: a set of people must work in parallel as is commonly used
for voting3. Serial: a set of users must work in sequence4. FYI (For Your Information): participant just receives a notification
task and the business process does not wait for the participant's response
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Human Task Demo
Human Task Creation with JDeveloper Demo
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Task Form Demo
Task Form Creation with JDeveloper Demo
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Rules Engine
Why is there a rules
engine?
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Rules Engine
Typical enhancement request:1) User identifies need(s)2) Business analyst outlines change3) Developer must locate change
and implement4) Unit test for validity5) Integration test6) System Test7) Regression test8) Acceptance test9) Deployment
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Rules Engine
Business Rules Code-Based RulesDeclarative Buried in Application Code
Business Owners can understand and access
Business Owners modifying code? Fuhgettaboutit!
Less layers between application and Business Owners
Many layers between Application and Business Owners: developers, testers, etc.
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Rules Engine
Typical enhancement request with a rules engine:
1) User identifies need(s)
2) Business analyst makes change in rules engine
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Rules Vocabulary
Rules Vocabulary:Rule – externalizes business logic so it can be changed
without reimplementing or redeploying the applicationFact – objects that Rules work on
Uses Rule Language (RL) to define facts based on XML Schema, Java classes, RL definitions and ADF Business Component view objects
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Rules Vocabulary
Rules Vocabulary:Bucketset - defines a list of values or a range of values of
a specified type to allow for a user friendly referenceSpecifies constraints on the values associated with fact properties in rules or in decision tables
Ruleset - container for rules and decision tablesDictionary - a container for facts, functions, globals,
bucketsets, links, decision functions, and rulesets
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Rules Engine
Where can I use a Business Rule?
1. Within a SOA composite and wired to a BPEL component
2. Within a SOA composite and used directly to run business rules
3. For dynamic routing in Mediator 4. For advanced routing rules in Human
Workflow
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Business Rule Demo
Business Rule Creation with JDeveloper Demo
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Enterprise Service Bus
Why does the Service Bus exist?
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Enterprise Service Bus
SOA and web services are based on “messages”
Web Services are de-coupledESB provides a common
framework to handle Web Services messages without forcing them to be coupled
The ESB hides details in proxies
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Enterprise Service Bus
Communications Nerve CenterMessaging Services:
Point-to-pointP2P request / responseBroadcastBroadcast request / responsePublish/subscribeStore and forward
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Enterprise Service Bus
Services:ManagementInterface
Adapters - ESB routes message to an app and has to transform message into a format that the app can interpret. A software “adapter” fulfills this taskMediation*
Service Broker – facilitates interaction between partners
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Enterprise Service Bus
Communications Nerve CenterServices:
MetadataSecurity
AuthenticationAuthorizationPrivacyIntegrityAuditing
Service Abstraction
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Enterprise Service Bus
Core functionality:Invocation support for synchronous and asynchronous
transport protocols, service mapping (locating and binding)Routing addressability, static/deterministic routing,
content-based routing, rules-based routing, policy-based routing
Mediation adapters, protocol transformation, service mapping
Messaging message-processing, message transformation and message enhancement
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Enterprise Service Bus
Core functionality:Process choreography
Service orchestration
Complex event processingOther quality of service
Management
implementation of complex business processes
coordination of multiple implementation services exposed as a single, aggregate serviceevent-interpretation, correlation, pattern-matchingsecurity (encryption and signing), reliable delivery, transaction management
monitoring, audit, logging, metering, admin console, BAM
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End The Enterprise Service Bus
Core functionality:VETRO
ValidateEnrich (Invoke a web service, query a DB,
etc)Transform (XQuery)RouteOperate (Primary function – deliver the
message)
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Service Bus Demo
Oracle Service Bus Demo
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Business Activity Monitoring
Business Activity Monitoring (BAM):
Enables process visualization by providing: 1) Real time visibility into Key Performance
Indicators(KPI) of the process through 2) Real time dashboards and alerts
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Oracle BAM: Two Main Components
Oracle BAM: Two Main Components1. BAM Server: Processes, analyzes, and provides
reporting capabilities2. BAM web application: Provides a rich user
interface for a variety of functions, depending on the user's role and includes dashboards, reports creation, data objects management, and BAM server administration
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Oracle BAM Server Components
BAM Server Components:• Active Data Cache (ADC)
• SOA Composites• Web service clients• Oracle Enterprise Manager• Oracle Service Bus proxy services • Oracle Data Integrator• JMS
• Report Cache• Report Server• Event Engine
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Oracle BAM – Web Application
BAM Web Application:Active Viewer - provides dashboards for visualizing reportsActive Studio - used to create and manage report definitions and layout and provides a rich set of data visualization objects for creating active, real-time reportsBAM Architect - used to create and manage data objects used for reportingBAM Administrator - provides administration functions:
• Creating and managing data source definitions• Managing ownerships of data objects, reports, alerts
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Business Activity Monitoring Demo
Oracle BAM Demo
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Event Delivery Network
Event Delivery Network (EDN):
Provides a declarative way to use a publish/subscribe model to generate and consume business events without worrying about the underlying message infrastructure
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Event Delivery Network
Event Delivery Network (EDN):
Developers only need to produce events without having to deal with any particular messaging API by “advertising”
Consuming an event means expressing an interest in the occurrence of a specific situation
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL
Deep Dive - A SOA Application, End-to-End Questions?
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL105
Avout:http://www.Avout.com
Oracle Documentation:http://docs.oracle.com
Author’s Website: http://fourthmonth.wordpress.com/
Author’s Email:[email protected]
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL106
Phone: (303) 908-5115http://www.avout.com
Please report errors to the author. Neither Avout, Oracle or the author warrant that this document is error-free.Avout © 2014. This document may not be copied or reproduced without the express written consent of Avout Inc.
AVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIALAVOUT”S ORACLE LICENSE AS A SERVICESM CONFIDENTIAL107