24
BPEL BPEL WEB WEB 在在在在在在 在在在在在在 在在在 在在在 : : 在在在 在在在

BPEL 在 WEB 服务中的应用

  • Upload
    gizi

  • View
    192

  • Download
    0

Embed Size (px)

DESCRIPTION

BPEL 在 WEB 服务中的应用. 主讲人 : 高守平. 主要内容. WEB 服务简介 WEB 服务的编写、测试、执行与整合 BPEL 简介 BPEL 基本活动 BPEL 结构化活动 BPEL 实例. Web 服务的概念 Web 服务( Web Service )指一台服务器通过软件向外界提供基于 Web 技术的服务 ,用户或应用软件能够通过 Internet 来访问 Web 服务。 Web 服务是自包含、自描述、模块化的应用程序。可以发布在 Web 上,并被发现和调用。 Web Service 是新一代分布式系统的核心,它具有如下特点: - PowerPoint PPT Presentation

Citation preview

Page 1: BPEL 在 WEB 服务中的应用

BPELBPEL 在在 WEBWEB 服务中的应用 服务中的应用

主讲人主讲人 :: 高守平高守平

Page 2: BPEL 在 WEB 服务中的应用

主要内容主要内容

• WEBWEB 服务简介服务简介• WEBWEB 服务的编写、测试、执行与整合服务的编写、测试、执行与整合• BPELBPEL 简介简介• BPELBPEL 基本活动基本活动• BPELBPEL 结构化活动结构化活动• BPELBPEL 实例实例

Page 3: BPEL 在 WEB 服务中的应用

WebWeb 服务的概念服务的概念 Web 服务( Web Service )指一台服务器通过软件向外

界提供基于 Web 技术的服务,用户或应用软件能够通过Internet 来访问 Web 服务。

Web 服务是自包含、自描述、模块化的应用程序。可以发布在 Web 上,并被发现和调用。

Web Service 是新一代分布式系统的核心,它具有如下特点: 互操作性:任何的 Web Service 都可以与其他 Web Service

进 行交互。 普遍性: Web Service 使用 HTTP 和 XML 进行通信。 行业支持:所有主要的供应商都支持 SOAP 和周边 Web Service 技术

Page 4: BPEL 在 WEB 服务中的应用

WEBWEB 服务体系结构服务体系结构

UDDI 注册中心

服务请求者服务提供者

发布 查找

绑定

Page 5: BPEL 在 WEB 服务中的应用

WebWeb 服务核心技术服务核心技术

• SOAPSOAP :简单对象访问协议,基于:简单对象访问协议,基于 XMLXML实现了消息格式,任何实现了基本实现了消息格式,任何实现了基本INTERNETINTERNET 通信服务的系统都能处理和传通信服务的系统都能处理和传送这类消息。送这类消息。

• WSDLWSDL :: WebWeb 服务描述语言,用于描述服务描述语言,用于描述如何使用如何使用 SOAPSOAP 来调用来调用 WebWeb 服务。服务。

• UDDIUDDI :统一描述、发现和集成规范,是:统一描述、发现和集成规范,是一种发布一种发布 WEBWEB 服务和查询服务和查询 WEBWEB 服务的服务的规范。规范。

Page 6: BPEL 在 WEB 服务中的应用

BPELBPEL :: Business Process Business Process Execution Language Execution Language

业务流程执行语言业务流程执行语言Building Standards-Based Building Standards-Based

Business Processes with Web Business Processes with Web Services Services

Page 7: BPEL 在 WEB 服务中的应用

什么是业务流程什么是业务流程

• 业务流程是将输入转化为输出的一系列工业务流程是将输入转化为输出的一系列工作和活动的集合。作和活动的集合。

• 在在 WEBWEB 服务中,流程中的活动相互关联,服务中,流程中的活动相互关联,相互作用。相互作用。

• 在在 WebWeb 服务中服务中 ,, 相应的业务流程规范是相应的业务流程规范是基于基于 XMLXML 的流程定义语言的流程定义语言 BPEL4WSBPEL4WS 。。

• BPEL4WSBPEL4WS 是由是由 IBM,MicrosoftIBM,Microsoft 和和 BEABEA在在 20022002 年联合提出的用于年联合提出的用于 WEBWEB 服务集服务集成的新规范。成的新规范。

Page 8: BPEL 在 WEB 服务中的应用

Business Processes FlowBusiness Processes Flow

• Business processes are a set of Business processes are a set of activities, supported by services, activities, supported by services, that support a particular business that support a particular business activity. activity.

• Business processes are business Business processes are business services built using other business services built using other business services.services.

Page 9: BPEL 在 WEB 服务中的应用

BPELBPEL

• BPEL4WSBPEL4WS 是专为整合是专为整合 Web ServicesWeb Services 而制而制定的一项规范标准。定的一项规范标准。

• BPELBPEL 描述流程描述流程– 可执行工作流可执行工作流——描述业务交互中参与者的实际行描述业务交互中参与者的实际行

为;为;– 抽象流程抽象流程——描述各方参与者对外可见的消息交换。描述各方参与者对外可见的消息交换。

• BPELBPEL 的作用是将一组现有的服务组合起来,的作用是将一组现有的服务组合起来,从而定义一个新的从而定义一个新的 WebWeb 服务。因此,服务。因此, BPELBPEL基本上是一种实现此种组合的语言。组合服基本上是一种实现此种组合的语言。组合服务的接口也被描述为务的接口也被描述为 WSDL portTypeWSDL portType 的集的集合。合。

Page 10: BPEL 在 WEB 服务中的应用

BPELBPELBPEL Process

In

JavaIn

Out

EJBIn

Out

MessageIn

Out

OtherIn

OutOut

Page 11: BPEL 在 WEB 服务中的应用

What BPEL does …What BPEL does …

• BPEL binds services together to form BPEL binds services together to form larger complex business serviceslarger complex business services

• Control Flow (branch, loop, parallel)Control Flow (branch, loop, parallel)• Asynchronous correlationAsynchronous correlation• Transaction support, Units of WorkTransaction support, Units of Work• CompensationCompensation

Page 12: BPEL 在 WEB 服务中的应用

Web Services Meet Business Web Services Meet Business ProcessesProcesses

Web Service 1

Web Service 2

Web Service 3

Web Service 4

Web Service 5

Web Service n

Page 13: BPEL 在 WEB 服务中的应用

Example Problem SpaceExample Problem Space

ClientPO Service

Credit Service

Inventory Service

Purchase Order

Credit

Check

ReserveInventory

Credit

Response

InventoryResponse

InvoiceConsolidate

Results

Page 14: BPEL 在 WEB 服务中的应用

Business Process ChallengesBusiness Process Challenges

• Coordinate Coordinate asynchronous asynchronous communication communication between services between services

• Correlate message Correlate message exchanges between exchanges between partiesparties

• Implement parallel Implement parallel processing of processing of activitiesactivities

• . . .. . .

• Manipulate/Manipulate/transform data transform data between partner between partner interactionsinteractions

• Support for long Support for long running business running business transactions and transactions and activitiesactivities

• Provide consistent Provide consistent exception handlingexception handling

• . . .. . .

Page 15: BPEL 在 WEB 服务中的应用

Orchestration(Orchestration( 管弦乐编曲管弦乐编曲 )) vs vs Choreography(Choreography( 舞蹈编排舞蹈编排 ))

• 使用使用 OrchestrationOrchestration ,,需要一个总控过程来控制需要一个总控过程来控制涉及到的涉及到的 WebWeb 服务,并协调服务,并协调 WebWeb 服务不同操作服务不同操作的执行。所涉及到的的执行。所涉及到的 WebWeb 服务并不知道(也不必服务并不知道(也不必知道)它们是组合过程的一部分。只有中央的总知道)它们是组合过程的一部分。只有中央的总控过程知道它们如何组合和协调控过程知道它们如何组合和协调

• ChoreographyChoreography 并不依赖中央的总控协调过程。并不依赖中央的总控协调过程。相反,每个涉及其中的相反,每个涉及其中的 WebWeb 服务都知道何时执行服务都知道何时执行自己的操作,和谁交互。所有的自己的操作,和谁交互。所有的 ChoreographyChoreography参与者都需要知道业务流程,要执行的操作,要参与者都需要知道业务流程,要执行的操作,要交互的消息,和交换消息的时机交互的消息,和交换消息的时机

Page 16: BPEL 在 WEB 服务中的应用

Orchestration(Orchestration( 管弦乐编曲管弦乐编曲 )) vs vs Choreography(Choreography( 舞蹈编排舞蹈编排 ))

• 从组合从组合 WebWeb 服务来执行业务流程的角度服务来执行业务流程的角度来看,来看, OrchestrationOrchestration 比比ChoreographyChoreography 更灵活:更灵活:11 、我们知道谁负责执行整个业务流程。、我们知道谁负责执行整个业务流程。22 、即使、即使 WebWeb 服务并不知道它们是业务流服务并不知道它们是业务流程的一部分,仍然可以把它们组合起来。程的一部分,仍然可以把它们组合起来。33 、当错误发生时,我们可以提供一个备、当错误发生时,我们可以提供一个备选的选的 ScenarioScenario

• BPELBPEL 遵循遵循 OrchestrationOrchestration 范式范式

Page 17: BPEL 在 WEB 服务中的应用

Recent History of Recent History of Business Process StandardsBusiness Process Standards

2000/05

XLang(Microsoft)

2001/03

BPML(Intallio et al)

2001/05

WSFL(IBM)

2001/06

BPSS(ebXML)

2002/03

BPEL4WS 1.0 (IBM, Microsoft)

BPEL4WS 1.1(OASIS)

2002/06 2003/01

WS-Choreography(W3C)

2003/04

WSCI(Sun et al)

WSCL(HP)

2002/08

Page 18: BPEL 在 WEB 服务中的应用

Standards Building Blocks of Standards Building Blocks of BPELBPEL

Description

HTTP,IIOP, JMS, SMTP Transport

XMLMessage

SOAP

WSDL

UDDI Discovery

Transactions

CoordinationWS-SecurityWS-ReliabilityQuality ofService

Orchestration - BPEL4WS

BusinessProcesses

Context

Description

Man

agem

ent

Choreography - CDL4WS

Page 19: BPEL 在 WEB 服务中的应用

BPEL4WSBPEL4WS 的活动的活动BPEL4WSBPEL4WS 活动类型活动类型 活动名称活动名称 活动描述的行为活动描述的行为

基本活动基本活动 ReceiveReceive 等待一个匹配消息到达等待一个匹配消息到达

ReplyReply 对对 receivereceive 的响应的响应

InvokeInvoke 向一个交互对象发出请向一个交互对象发出请求求

ExitExit 终止流程执行终止流程执行

ThrowThrow 抛出一个异常抛出一个异常

结构化活动结构化活动 SequenceSequence 定义顺序执行多个活动定义顺序执行多个活动

FlowFlow 定义多个并行的活动定义多个并行的活动

If then elseIf then else 从多个活动中选择一个从多个活动中选择一个

While,forEachWhile,forEach 循环控制循环控制

Page 20: BPEL 在 WEB 服务中的应用

实例:订单处理流程的实现实例:订单处理流程的实现

图 1 订单处理流程图

Page 21: BPEL 在 WEB 服务中的应用

• 订单处理服务订单处理服务 (OrderDS):(OrderDS): 接受客户请接受客户请求并为客户提供商品的必要信息求并为客户提供商品的必要信息

• 订单审核服务订单审核服务 (OrderSS):(OrderSS): 用于检验客户用于检验客户订单商品信息的正确性;订单商品信息的正确性;

• 支付服务支付服务 (PService):(PService): 根据商品价格实根据商品价格实现现金收取或卡支付功能;现现金收取或卡支付功能;

• 送货服务送货服务 (DService):(DService): 根据客户订单中根据客户订单中的邮寄地址实现送货功能。 的邮寄地址实现送货功能。

Page 22: BPEL 在 WEB 服务中的应用
Page 23: BPEL 在 WEB 服务中的应用

流程流程 PSPS 的关键代码的关键代码1.1. <process name=”PS” abstractProcess=”no”><process name=”PS” abstractProcess=”no”>2.2. <squence><squence>3.3. <receive partner=”PService” portType=”PServicePT” <receive partner=”PService” portType=”PServicePT”

container=”purchaseRequest” createInstance=”yes”>container=”purchaseRequest” createInstance=”yes”>4.4. </receive></receive>5.5. <invoke partner=”PService” portType=”PServicePT” <invoke partner=”PService” portType=”PServicePT”

operation=”chooseBank” inContainer=”paymentRequest” operation=”chooseBank” inContainer=”paymentRequest” outputContainer=”paymentResponse”>outputContainer=”paymentResponse”>

6.6. </invoke></invoke>7.7. <invoke><invoke>8.8. <invoke partner=”DService” portType=”DServicePT” <invoke partner=”DService” portType=”DServicePT”

operation=”chooseDeliveryCompany” operation=”chooseDeliveryCompany” inContainer=”deliveryRequest” inContainer=”deliveryRequest” outputContainer=”deliveryResponse”>outputContainer=”deliveryResponse”>

9.9. </invoke></invoke>10.10.</sequence></sequence>11.11.<reply partner=”customer” portType=”producerPT” <reply partner=”customer” portType=”producerPT”

operation=”sendOrderInformation”/>operation=”sendOrderInformation”/>12.12. </process></process>

Page 24: BPEL 在 WEB 服务中的应用

THANK YOUTHANK YOU