oredev tomstenstrom oracle bpel - Øredev...
TRANSCRIPT
3
Agenda
• The background
• BPEL – an overview
• Usage scenarios – customer experiences
• The bigger picture...
4
Trends in business
Increasingly Complex Infrastructure
Increasingly Demanding Users
End-to-End ProcessesMore Customization
Shorter Change Cycles
More Insight
NEED:
Enterprise Agility
BOTTLENECKS:
• Visibility
• Process• Data
IT
5
What do they want?• Save money – i.e. Do more with less...
• Make more money!
• Be more agile to changes in business –models, rules, execution, compliance etc.
• Get new IT support for the business without developing from the gound up
• But...– The ”language gap” between IT and business makes this a pain
• The challenge– Find common ground...
6
The Convergence Of
Architectures
Enterprise InformationArchitecture
Service-Oriented Architecture
Grid ComputingArchitecture
APPLICATIONS
INFRASTRUCTUREINFORMATION
7
The Application Model is
Evolving…
Web Solution SOA Solution
More Interoperable
More Modular Business Processes
Richer Clients
Packaged Applications
FulfillmentCenter
CustomerService
BusinessPartners
1
2
3
1
2
3
9
What is BPEL?• Markup language for composing a set of discrete
services into an end-to-end process flow
• Deals explicitly with the functional aspects of business processes
• Rich support for async interactions, parallel processing and exception management.
• Leverages things like XML Schema, XSLT, XML Query, WS-Security, WS-Addressing and WSIF.
• Composability: A process flow is automatically a service.
• BPEL is executed by a ”BPEL Engine”
10
Some BPEL basics
BPEL defines a model and a grammar for describing the behavior of a business process based on interactions between the process and its partners.
A BPEL process is a reusable definition that can be deployed in different ways and in different scenarios, while maintaining a uniform application-level behavior across all of them.
An Abstract Process is a partially specified process that is not intended to be executed and that must be explicitly declared as abstract .
An Executable Process is fully specified and thus can be executed
- Web Services Business Process
Execution Language Version 2.0Public Review Draft, 23rd August, 2006
11
The early BPEL Value
Proposition
Build your ownProcess Logic
BPELProcess Logic
Cost/Complexity
describe
implement
manage
adapt
describe
implement
manage
adapt
Implement 1-off complexorchestration elements as
part of each application
Exceptions are
the rules
Complex and
fragmented logicA single component encapsulates
all the process logic
Side-by-side versioning
Console has built-in support for
testing, audit trails.
Compensating Transactions
makes exception handling easy
Higher level of programming
abstraction
Leverage infrastructure: write
20 to 30 times less code!
“Reduce the cost and complexity of process integration initiatives”
12
Just a fad?• 10+ years of research and development
from Microsoft (XLANG) and IBM (WSFL, FDML)
• Status today: V2.0 in Public Review
• Wide customer adoption today
• Vendor support
• Driven by OASIS WSBPEL TC
Gartner believes that BPEL will
emerge as the leading industry
standard for Web service
orchestration and coordination
of business processes.
- David Smith, Research Vice
President and fellow, Gartner
BPEL is the future of the
integration space in my
view…Why? Because the value is
so much higher when you provide
not only a way to integrate
applications, but also a way to
create services from them and put
them into business processes
- John Rymer, Vice President,
Forrester Research, Inc.
BPEL is getting a lot of attention, and rightly so. The flexibility it provides in orchestrating Web Services, coupled with its ability to implement real-time workflows, will give us a winning
edge that will help us react quickly and efficiently to our ever-changing business requirements.
Peter Zadrozny, CTO of StrongMail Systems
14
?
BPEL, The Orchestrator and the
De-coupler
BPEL
IU
PORTAL
J2EE
TOMCAT
Web Service
Java Service
ERPSAP, Oracle, etc.
User Tasks
DatabaseStored Procedures
15
BPEL Activity Set
Select Lowest Offer
10:00am
Handle Negative
Credit Exception
Credit Rating
start
end
BPEL Flow
?
United Loan Star Loan
Get Rating
Send Loan Application
Receive Loan Offer
03:00pm
Send Loan Application
Receive Loan Offer
<process>
</process>
<switch>
<variable>
<faultHandlers>
<receive>
<invoke>
<invoke>
<flow>
</flow>
<partnerLink>
<partnerLink> <partnerLink>
16
BPEL<process name="SyncHelloWorld"
targetNamespace="http://tutorial.oracle.com"suppressJoinFailure="yes" xmlns:tns="http://tutorial.oracle.com"xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"xmlns:bpelx=http://schemas.oracle.com/bpel/extension>
</process name>
<partnerLinks><partnerLink name="client"<!-- comments... -->
partnerLinkType="tns:SyncHelloWorld"</partnerLinks>
<variables><!-- Reference to the message passed as input during initiation --><variable name="input"
messageType="tns:SyncHelloWorldRequestMessage"/><!-- Reference to the message that will be returned to the requester --><variable name="output"
messageType="tns:SyncHelloWorldResponseMessage"/></variables>
17
More BPEL<assign>
<copy><from expression="concat('Hello ',bpws:getVariableData('input',
'payload','/tns:name'))"/><to variable="output" part="payload" query="/result"/></copy>
</assign>
<sequence name="main"><!-- Receive input from requester.Note: This maps to operation defined in SyncHelloWorld.wsdl -->
<receive name="receiveInput" partnerLink="client"portType="tns:SyncHelloWorld"operation="process" variable="input"createInstance="yes"/>
<reply name="replyOutput"partnerLink="client"portType="tns:SyncHelloWorld"operation="process"variable="output"/>
</sequence>
18
Some BPEL Interaction
Patternsreceive
reply
…
1. Sync Request Response
receive
step N
Step 1
2. Fire and Forget
receive
…
6. Change Handler
Handle
change
scope
On event A
receive
reply
validate
…
4. Partial Processing
invoke
2 seconds
2 days
receive
invoke
validate
…
5. Progress Observer
invoke
1 day
2 days
receive
invoke
…
3. Async. Request Response
4 hours
21
How would you deploy BPEL?
BPEL
Console
MA
NA
GE
J2EE Application Server
(Oracle AS, WebLogic, JBoss, WebSphere)
Core BPEL Engine
WSDL Binding Built-in Integration Services
File, FTP
Web Service
Java, JMS, JCA
Database
XQuery XSLT User
Tasks
BPEL
Eclipse, JDeveloper
BPEL Designer
BPEL Process Manager
JAVA
RDBMS
(Oracle, SQL*Server…)(Oracle Database)
iWay
22
Usage examples•Financial Services Order/Payment Processing
New Account Provisioning ProcessTrade Exception Management
•High Tech Order ManagementTrading Partner Integration
•Telecom Cell Phone ActivationVoIP ProvisioningDSL Provisioning
•Government Medicare Eligibility Determination and Enrollment Satellite Data ExchangePublish and Process FormsEmployee On-boarding
•Transportation Fleet and Asset Management
•Travel Reservations / one-stop-shop booking
•Retail Sales Data Integration
DSL Provisioning at Large Telco•Application for the provisioning and activation of DSL lines. Belgacom is processing up to
15,000 DSL provisions / day through SOA and BPEL processes which link their customer
interfaces and OSS layer, managing activation and repair.
Struts
BPEL
Telco Activation Services
DSL Activation Manager
6000+ network equipment endpoints (SLEE gateway)
SDSL Activation Manager
Sales/Customer Service Interfaces and Order Review
Exception Management
Billing Services
Account Management Services
Reporting Services
Register for New ServiceSelf-service web app
Call Center
Application Server
24
Overall Approach at Pan-European
Agency Service
Partner C
Service
Partner B
Service
Partner A
BPEL PMBPEL PM
“Network of service
partners”
BPEL SolutionBPEL Solution
DesignManagement
Console
Engine
BPEL SolutionBPEL Solution
DesignManagement
Console
BPEL SolutionBPEL Solution
DesignManagement
Console
BPEL SolutionBPEL Solution
DesignManagement
Console
25
• Cut the development time by half– Improved productivity by cutting down on coding and
improved workflow designer makes process design easier
• Highly available and scalable– System Y was designed with 99.9% uptime requirement
and network load of 240 Mbits/second and 100,000 messages daily
• Technology agnostic– Application server and database server independent
means no redesign and minimal support
• Simplify management by establishing overreaching technical architecture, infrastructure, and protocols
– Standards compliant
Benefits Realized in using BPEL technology large consulting service provider
26
Lessons Learnt in project at US on-
line services provider
&
&SENSORS
• Tremendous value of facilitating collaboration between retired federal HR experts (“hundreds of years of public service experience”) and J2EE developers
• Experts can read BPEL process maps created by developers
• Next step : Process Modeling Tool
• A Need to decouple functionality and event trigger instrumentation
• Solution: Aspect-oriented programming
27
SOA: Top Down vs. Bottom Up?
Business Analyst
Integration Developer
Notation LayerBPMN or UML
Executable LayerXML, XQuery, BPEL, Rules
Service DeveloperBusiness ServicesAdapters, Java, Struts, JSF
Existing Systems
MAINFRAMEPACKAGED
APPLICATIONS
JAVADATABASE
Activity Activity Activity
assign invoke receive assign
28
The BPM Lifecycle
BPMLifecycle
Monitor
Optimize
Business Process
Monitoring(BAM)
Implement
Deploy
Execute
Business Process Execution (BPE)
Model
Simulate
Business Process Analysis (BPA)
29
Blueprint For Building A SOBA
.NET, SAP, Mainframe, Oracle, Retek, PeopleSoft, Siebel, etc
Enterprise Service Bus (WS-*)2. Naming/Registry, Filtering,
Transformation, SLA(Dynamic)
Java
Portal4. Access
(Unified)
5. Security(Declarative)
6. Monitoring(In-Context,Real-time)
Model Driven - Declarative Programming
fx
BPEL XSLTBusiness
RulesPortlets
3. Assembly, Orchestration(Transparency)
CEPJSF
Pages
1. Portfolio of Business Services and Events(Granularity)
30
More than BPEL...
BPM
Toolsets WS Security
and
Management
Service
Registry
Business
Activity
MonitoringRules
EnginesESB
Enterprise Service Bus
Data Hubs
Portals, AJAX, RIA,
JSF, .Net, Flex, ...
Grid Computing
Adapters,
JCA, WSIF,
JBI, ...
Declarative and
modeldriven
devlopment BPEL Business
Process Orchestration
32
Vendors?
• Oracle – Oracle BPEL PM• Microsoft – BizTalk• IBM – WS Business Integration Server• BEA – AquaLogic• SUN – CAPS (Composite App Platform
Suite)• Jboss – jBPM• Software AG - Crossvision• Intalio, ActiveBPEL and others