面向服务架构-第10章 服务组合—BPEL 第6讲
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Sample Business Process: Purchase Order
Sample Purchase Order
Purchase Order Request
Businerder Acknowledgement “B”
Purchase Order Response
Web services 走向面向服务计算
应用程序被视为“服务” 松散耦合,动态交互 异构平台 没有哪一方取得完全的控制权
服务组合
如何组合服务?
两种编程模型
Programming in the large
非程序员实现流程
流程逻辑处理如何将功能点组合起来以解决更复杂的 问题(如,处理一个订单)
在交互的过程间实现互操作
在Web services stack的顶层
WS-BPEL in the WS-* Stack
We are here
WS-BPEL
WSDL, Policy, UDDI, Inspection
Security
Reliable Messaging
Transactions Coordination
Send PO Ack
Send PO Response
Choreography – The observable public exchange of messages
From an Orchestration Perspective
From ERP To ERP
Private Process
Business A BPEL Workflow
March 2003 BPEL4WS is submitted to OASIS
May 2003 OASIS publishes BPEL4WS 1.1
1stH 2007 WS-BPEL 2.0 released
Getting the Players Together
(*)
BPEL 1.1
WS-BPEL 2.0
Programming in the small
程序员实现功能
功能逻辑处理具体的细粒度的任务 (如,获取订单文件 或更新客户记录)
对过程模型的需求
移植性和互操作性
灵活的集成能力
表达能力强,易于适应底层服务的变更
可细分, 基于类型的组合,使得:
第三方能对已有服务进行组合 为不同部门提供不同的的组合视图 提高可伸缩性和复用性
partner link
Partner Links
partner link
Port Type 1
Partner Link Type
Port Type 2
event handlervent
handler
fault handlefrault
handler
Handlers
compensation handler
extensionActivity
receive
receive
invoke
invoke
flow
pick
invoke
sequence
Structured Activities
while
forEach if-else
repeatUntil
scope
Properties Correlation Sets
Property 1 Property 2
有状态会话和生命期管理
支持多个有状态长周期会话
可恢复
长周期的业务流程需要错误处理和恢复机制,以便管理错误和恢 复错误
业务流程交互模式
Orchestration(编曲) vs Choreography(编舞)
使用Orchestration,需要一个总控过程来控制涉 及到的Web服务,并协调Web服务不同操作的执 行。所涉及到的Web服务并不知道(也不必知道) 它们是组合过程的一部分。只有中央的总控过程 知道它们如何组合和协调
Transform
Send PO
PO Request
Transform
Receive PO
Ack
PO Acknowledgement
Receive PO Response
PO Response
Orchestration – A private executable business process
Orchestration and Choreography Together
从组合Web服务来执行业务流程的角度来看, Orchestration比Choreography更灵活: 1、我们知道谁负责执行整个业务流程。 2、即使Web服务并不知道它们是业务流程的一部 分,仍然可以把它们组合起来。 3、当错误发生时,我们可以提供一个备选的 Scenario
BPEL遵循Orchestration范式
termination handler
WS-BPEL 语言结构
Process Partner links Data handling Properties and correlation Basic and structured activities Scopes
WS-BPEL 过程定义
Airline C
Check Flight Schedules
B2B Applications
Decision Making
Compare Options Travel Agency
We are here!
服务组合——目的
业务面临的一个关键问题仍然是集成
企业内部集成 (Enterprise Application Integration, EAI) 与合作伙伴的集成 (Business-to-Business Integration, B2Bi) 企业联盟
BPEL简介
业务流程可执行语言BPEL (Business Process Execution Language)是专为整合Web Services而制 定的一项规范标准。
描述商业活动的抽象高级语言
IBM的WSFL—支持图形化的流程 Microsoft的XLANG—结构化构造方法
BPEL描述流程
From a Choreography Perspective
Public Process
Business A
Send PO
PO Request
Business B
Receive PO
Receive PO Ack
PO Acknowledgement
Receive PO Response
PO Response
extensions
message exchanges
correlation sets
fault handlers
定义WS-BPEL扩展的 属性和元素的名称空间
出站和进站消息活动 的相关关系
应用数据字段,它们 共同标识了一个会话
处理流程中的 异常情形
primary activity
WSDL definitions
Receive PO
Transform
Transform
Receive PO
Send PO Ack
Ack
PO Acknowledgement
Receive PO Response
PO Response
Receive PO Response
Transform
Two BPEL workflow templates reflecting a business agreement
XML schemas
WS-BPEL 与WSDL的关系
BPEL建立在WSDL服务模型之上, 并对其进行了扩展
WSDL 定义了允许的特定操作
BPEL定义了 WSDL operations 如何被 编排在一起满足特定业务流程
BPEL还定义了WSDL的扩展,以支持长 周期异步业务流程
BPEL Historical Timeline
Dec 2000 Microsoft publishes XLANG
March 2001 IBM publishes WSFL
July 2002 IBM, Microsoft and BEA converge WSFL & XLANG into BPEL4WS 1.0
(*) BPEL 1.1 authors, May 2003
为什么需要 BPEL?
WSDL定义了Web services具有无状态的交互模 型
消息交换
同步调用 无关联的异步调用
大多数 “现实世界的” 业务流程需要一个更强大 的交互模型
可以双向交换消息,也可以点到点(peer-to-peer)的交 换,并能持续特定时间(分、时、天)
可执行工作流—描述业务交互中参与者的实际行为; 抽象流程—描述各方参与者对外可见的消息交换。
BPEL的作用是将一组现有的服务组合起来,从而定 义一个新的Web服务。因此,BPEL基本上是一种实 现此种组合的语言。组合服务的接口也被描述为 WSDL portType的集合。
BPEL——组合Web服务
Choreography并不依赖中央的总控协调过程。相 反,每个涉及其中的Web服务都知道何时执行自 己的操作,和谁交互。所有的Choreography参与 者都需要知道业务流程,要执行的操作,要交互 的消息,和交换消息的时机
Orchestration(编曲) vs Choreography(编舞)
BPEL提供了描述有状态的、长运行周期的交互的 能力
BEPL的优点
描述业务流程的业界标准
使用通用的语言和技术
在设计上很自然地与Web services相适应
用XML描述 使用并扩展了WSDL 1.1 使用XML Schema 1.0 作为数据模型
在平台和开发商间可移植
理论上可以在任何BPEL兼容的引擎上运行
exit
Variables
reply invoke
Basic
WS-BPEL throw rethrow
42
XML Schema Type
XML Schema Element
assign
wait
Activities
validate
compensate
empty
compensateScope
MyProcess
WS-BPEL历史
BPEL is the Web Services Orchestration standard from OASIS
bee•pel’, beep’•uhl, bip’•uhl
An XML-based grammar for describing the logic to orchestrate the interaction between Web services in a business process
SOAP (Logical Messaging) XML, Encoding
Other protocols Other services
Business Processes
Description
Quality Of
Service
Transport and
Encoding
WSDL Message
receive
定义对外部XML Schema 或WSDL的依 赖关系
WS-BPEL过程在其行 为中用到的关联关系
存储业务流程或伙伴交 互的状态数据
并发处理进站消息或 计时器警报
执行流程逻辑—— 任 意个活动可以循环嵌 套
imports
partner links
variables
event handlers
process
Generate BPEL Template
Business Analyst Tool
Business A
Business B
Generate BPEL Template
Business A BPEL Workflow
Transform
Send PO
PO Request
Business B BPEL Workflow
面向服务架构
第10章 服务组合—BPEL
Service Composition: BPEL
服务组合的概念
Web服务组合是通过组合基本Web服务提供增值服务的能 力,这些基本Web服务可能由别的组织提供。
要点
服务组合需要使用其它服务 组合后形成的是一个具有新功能的服务 服务组合使用的基本功能可以是组织外部的
服务组合——挑战
服务组合——实例
Airline B
Airline A
Microsoft .Net
Web Service
IBM WebSphere Web Service
Sun Java
Internet
Check Flight Schedules
Check Flight Schedules
Web Service