BPEL4WS基础知识

一、为什么选择BPEL4WS

  1. 可以使用行业范围内的规范来广告、发现和调用Web服务

  2. 开发人员和用户可以通过组合和订购可用的基本服务来解决复杂问题

  3. 服务组合允许服务重用并加速复杂的服务开发

  4. 提供一种表示法,用于将Web服务的交互描述为业务流程

  5. 编写使用Web服务的程序,通过组合一组现有服务来定义新的Web服务

  6. 编写作为Web服务的程序,组合服务的接口被描述为任何其他Web服务

 

二、BPEL4WS过程的结构

<process ...><partners>  ...</partners>  <!--流程与之交互的Web服务--><containers> ...</containers>  <!--流程使用的数据--><correlationSets> ...  <!--用于支持异步交互--></correlationSets><faultHandlers> ...  <!--代替执行路径已处理错误条件--></faultHandlers><compensationHandler> ...  <!--undo动作时执行的代码--></compensationHandler>(activities)*  <!--该过程实际是做什么的-->
</process>

 

三、BPEL的基本元素

  1. BPEL流程主要包括对其他服务的调用或从其他服务接收调用

  2. Partner:与流程交互的其他服务

    1. invoked partner:流程调用的服务,作为其算法的组成部分

    2. client partner:调用流程

    3. 第三方partner:流程调用的服务 和 调用流程

  3. Partner(Service) Link Type  (SLT)

    1. 表示第三方声明两个(或更多潜在Web服务之间的关系)

    2. 定义角色集合,其中每个角色都表示<portTypes>的列表

    3. 当两个服务交互时,伙伴链接类型是它们如何交互的声明

    4. 定义了角色以及角色需要支持的端口类型

<partnerLinkType name=“...”><role name=“..."><portType name=“...” />*</role><role name=“...”><portType name=“...”/>*</role>
</partnerLinkType>
<partner name=“...”   partnerLinkType=“...” partnerRole=“...”   myRole=“...”/>
  1. 在纯被调用的伙伴和纯客户伙伴的情况下 伙伴链接类型只有一种作用

<partnerLinkType      name="inventoryServiceSLT"><role name="inventoryService"><portType name=“InventoryServicePT"/></role>
</partnerLinkType><partner   name="inventoryServicePL"partnerLinkType="inventoryServiceSLT"partnerRole="inventoryService"/>

 

四、活动

  1. BPEL流程基本上是流程图,类似于算法的表达,该过程中每个步骤都称为活动。

  2. 原始活动:过程中的原始步骤

    1. <invoke>

    2. <receive>

    3. <reply>

    4. <wait>

    5. <assign>

  3. 结构活动:可以使用原始活动组合为更复杂的算法

    1. <sequence>

    2. <while>

    3. <flow>

  4. 主要活动:

  • <receive>等待用于外部调用服务接口操作的消息
<receive partner=“...” portType=“...” operation=“...” container=“...” [createInstance=“...”] />
  • <invoke>在某些Web服务上调用操作
<invoke  partner=“...”  portType=“...” operation=“...” inputContainer=“...”  outputContainer=“...”/>
  • <reply>生成输入/输出操作的响应,在伙伴调用中发送回复消息
<reply partner=“...” portType=“...” operation=“...”  container=“...”/>
  • <assign>将数据从一个地方复制到另一个地方
<assign><copy> … </copy>+
</assign>
  1. 原始活动

    1. <wait>等待一段时间

    2. <throw>表示出了一点问题

    3. <terminate>终止整个服务实例

    4. <empty>或不执行任何操作

  2. 结构活动

    1. <sequence>定义步骤的有序序列

    2. <switch>使用现在常见的“案例陈述”方法进行分支

    3. <while>定义循环

    4. <pick>执行几种替代路径之一

    5. <flow>指示应并执行步骤集合

  3. 基本结构

<sequence><receive .../><flow><sequence><invoke ... /><while ... ><assign> ... </assign></while></sequence><sequence><receive ... /><invoke ... /></sequence></flow><reply ... />
</sequence>

 

五、BPEL数据模型

  1. <Countainer>提供用于保存构成业务流程状态的消息的方法

  2. 定义变量的语法已更改为使用三个互斥属性messageType type和element

 

六、消息相关性

  1. BPEL中的异步交互

  2. BPEL可以对多种类型的交互进行建模

    1. 无状态互动

    2. 有状态的异步交互

  3. 消息关联是BPEL机制,它允许流程参与有状态会话

  4. 在许多分布式对象系统中,消息路由涉及检查消息中是否有用于标识目标的显式实例ID

  5. BPEL实例由交换的消息中一组或多组关键数据字段标识

  6. 举例:

采购订单/发票业务情景中,发票可能包含相应的采购订单编号

Purchase Order:

<PurchaseOrder><PurchaseOrderNumber><PurchaseOrderDate>........
</PurchaseOrder>

Invoice:

<Invoice><InvoiceNumber><InvoiceDate><PurchaseOrderNumber>........
</Invoice>
  1. 相关集:标识流程实例的数据字段的集合

    1. 一组捕获交互状态的业务数据字段

    2. 每组初始化一次

    3. 在交互过程中值不变

  2. 使用相关集

    1. 集合被receive reply invoke pick活动引用

    2. 由于receive和pick提供了流程的入口点,因此相关集通常会出现在他们上以启用消息到实例的路由

    3. reply和invoke活动上的相关集通常用于验证传出消息

<correlationSet name=“PurchaseOrder” properties=“cor:customerID cor:orderNumber”/>
<correlationSet name=“Invoice” properties=“cor:vendorID cor:invoiceNumber”/>
<invoke  partnerLink=“Buyer” portType=“SP:BuyerPT” operation=“AsyncPurchaseResponse” inputVariable=“POResponse”><correlations><correlation set=“PurchaseOrder” initiate=“no” pattern=“out”><correlation set=“Invoice” initiate=“yes” pattern=“out”></correlations>
</invoke><receive  partnerLink=“Buyer” portType=“SP:PurchasePT” operation=“AsyncPurchase” variable=“PO”><correlations><correlation set=“PurchaseOrder” initiate=“yes” pattern=“in”></correlations>
</receive>

七、BPEL处理程序

  1. 错误情况的处理通常会影响相互关联的一组活动。

  2. BPEL在范围结构化活动中包含一组相关活动。

  3. 范围为嵌套在其中的活动提供了上下文,并且在此定义了故障和补偿处理程序。

  4. 每个范围可以具有两种关联的处理程序

    1. 故障处理程序:可以针对不同的故障类型附加很多

    2. 补偿处理程序:每个范围一个补偿处理程序

 

八、错误处理程序

  1. 在执行BPEL流程时,在调用的服务或流程本身内部可能会发生错误

  2. BPEL提供了一种机制,可以通过执行<fault handles>中指定的子例程来显式捕获错误并进行处理

  3. 当范围内发生故障时,故障处理程序定义备用执行路径

 

九、补偿处理程序

  1. 业务流程通常持续时间很长,这意味着在业务流程进行许多事务之后,可能需要取消业务流程。

  2. 允许流程的创建者定义某些操作,这些操作应用来撤消工作单元并将数据恢复到完成该工作之前的状态。

 

十、可执行BPEL&抽象BPEL

  1. BPEL4WS支持两种不同的使用场景:

    1. 可执行流程——实施可执行业务流程

    2. 抽象过程——描述不可执行的抽象过程

  2. 抽象过程:

    1. 抽象过程是部分指定的过程,通常不打算执行

    2. 抽象流程是格式完整的流程,具有完整的表达能力,可用于指定具有不同程度的操作细节的流程。

    3. 能够抽象出操作细节,使用BPEL的概念应能反映描述业务协议公共方面所需的抽象级别。

    4. 仅处理与协议相关的数据

    5. 使用不确定的数据值隐藏行为的私人方面

  3. 抽象过程的使用

    1. 导出模式:可执行流程到抽象流程

    2. 导入模式:抽象过程到可执行过程

    3. 协议匹配模式:构造一个与抽象过程中描述的预期行为相匹配的过程

 

十一、总结

  1. BPEL是一种XML语言,支持面向流程的服务组合

  2. BPEL4WS定义了一个模型和一个语法,用于基于流程及其合作伙伴之间的交互来描述业务流程的行为

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络!

文章转载自订阅号「夕小瑶的卖萌屋」中的文章《不要再纠结卷积的公式啦&#xff01;0公式深度解析全连接前馈网络与卷积神经网络》。 Hello~你们的小夕终于吐泡泡了&#xff5e;前几天小夕又加班赶project啦&#xff0c;拖了好几天&#xff0c;都快患上拖稿焦虑症了_(:з」∠)…

不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络

Hello~你们的小夕终于吐泡泡了&#xff5e;前几天小夕又加班赶project啦&#xff0c;拖了好几天&#xff0c;都快患上拖稿焦虑症了_(:з」∠)_关于卷积神经网&#xff0c;小夕就不从卷积讲啦。以前不止一个粉丝问我卷积神经网络中卷积的意义&#xff0c;甚至在知乎上被邀请回答…

研究生常用的几种风险评估方法-专家调查法、蒙特卡洛模拟法、计划评审技术、敏感性分析法、决策树法、影响图法、模糊综合评价方法

其实风险评估就是在充分掌握资料的基础之上&#xff0c;采用合适的方法对已识别风险进行系统分析和研究&#xff0c;评估风险发生的可能性&#xff08;概率&#xff09;、造成损失的范围和严重程度&#xff08;强度&#xff09;&#xff0c;为接下来选择适当的风险处理方法提供…

从前馈到反馈:解析循环神经网络(RNN)及其tricks

好像已经有两周没有更新啦。最后这几天都不敢打开订阅号后台了&#xff0c;怕一打开发现掉了几百个粉丝的话就难过死了T_T。然而小夕发现你们并没有离开&#xff0c;感动的差点哭出来&#xff0c;都感觉再不认真写一篇文章就太对不起大家的等待啦。而这两周&#xff0c;经历的事…

多因子风险建模-协方差矩阵、投资组合风险

一、为什么要了解投资风险 在探讨投资风险前&#xff0c;我们不妨思考一个问题&#xff1a;好的投资&#xff0c;取决于哪些因素&#xff1f; 其实&#xff0c;卓越的投资回报&#xff0c;主要来源于四个因素&#xff1a; 收益预测&#xff1a;能形成合力的收益预期&#xff…

啊啊忍不住了,更!新!!!

你萌都还在&#xff0c;好开心 o(≧v≦)o在2017年9月21日这个特殊的日子&#xff0c;小夕在长达30天的沉默后&#xff0c;终于冒泡了&#xff01;有木有很激动&#xff0c;很期待&#xff1f;&#xff01;&#xff08;小夕&#xff0c;你不说我都忘了还有这订阅号了&#xff09…

【数据挖掘】数据挖掘和数据分析基础

参考文献&#xff1a;《Python数据分析与挖掘实战》张良均等 数据挖掘建模过程 定义挖掘目标&#xff1a;理解任务&#xff0c;确定指标数据采样&#xff1a;注意数据的完整性和有效性数据探索&#xff1a;异常值分析、缺失值分析、相关性分析、周期性分析数据预处理&#xff…

Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析

米筐科技&#xff08;RiceQuant&#xff09;策略研究报告&#xff1a;Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析 江嘉键1 年前1 概述Barra 结构化风险模型是全球知名的投资组合表现和风险分析工具。最近一段时间&#xff0c;我们米筐科技量化策略研究团…

深度学习资料挑的眼花啦?小夕帮你做选择!

小夕还记得几年前刚入坑的时候&#xff0c;老师给的入门资料就是一堆论文&#xff01;害的小夕差点放弃。。。如今深度学习应用的开发成本越来越低&#xff0c;学习资料越来越多&#xff0c;于是对初学者来说进入了另一个相反的困境——资料过多&#xff0c;让人眼花缭乱&#…

干货 | 深度学习的可解释性研究(一):让模型「说人话」

在这篇文章中&#xff1a;可解释性是什么&#xff1f;我们为什么需要可解释性&#xff1f;有哪些可解释性方法&#xff1f;在建模之前的可解释性方法建立本身具备可解释性的模型在建模之后使用可解释性性方法作出解释关于 BIGSCity参考文献不以人类可以理解的方式给出的解释都叫…

深度解析LSTM神经网络的设计原理

引人入胜的开篇&#xff1a;想要搞清楚LSTM中的每个公式的每个细节为什么是这样子设计吗&#xff1f;想知道simple RNN是如何一步步的走向了LSTM吗&#xff1f;觉得LSTM的工作机制看不透&#xff1f;恭喜你打开了正确的文章&#xff01; 前方核弹级高能预警&#xff01;本文信息…

Step-by-step to LSTM: 解析LSTM神经网络设计原理

Ps&#xff1a;喂喂喂&#xff0c;你萌不要光收藏不点赞呀_(:з」∠)_emmmm... 搞清楚LSTM中的每个公式的每个细节为什么是这样子设计吗&#xff1f;想知道simple RNN是如何一步步的走向了LSTM吗&#xff1f;觉得LSTM的工作机制看不透&#xff1f;恭喜你打开了正确的文章&#…

【论文翻译】用知识图谱的多任务特征学习来增强推荐

Wang H, Zhang F, Zhao M, et al. Multi-task feature learning for knowledge graph enhanced recommendation[C]//The World Wide Web Conference. 2019: 2000-2010. 原文链接&#xff1a;https://arxiv.org/pdf/1901.08907.pdf 代码实现&#xff1a;https://github.com/hwwa…

LeetCode-二叉树算法总结-层次遍历,路径总和等

版权声明&#xff1a;本文为博主原创文章&#xff0c;欢迎转载&#xff0c;但请注明出处&#xff0c;谢谢愿意分享知识的你~~ https://blog.csdn.net/qq_32690999/article/details/80484440 </div><link rel"stylesheet" href"https://csdnimg.…

记录一次闲鱼维权事件

-----2017.11.16 最后一次更新----- 小夕也真的没有想到&#xff0c;在万般绝望之时竟然得到了这么多人的帮助。在本文发出后&#xff0c;多位阿里人员积极联系我了解了情况&#xff0c;很感激一位阿里的专家帮我将此事递交给相关部门&#xff0c;让专业的客服直接受理和重审此…

百度作业帮-产品分析

一、商业模式分析 1.1、问答时期&#xff08;2014年2月-2015年1月&#xff09; 商业模式之作业帮V1.0.png两点值得注意&#xff1a; 作业帮的出现有明显的历史原因&#xff0c;即由百度知道团队出品&#xff0c;因此切入K12教育初期&#xff0c;采取的是之前的问答模式&#xf…

【Python自然语言处理】中文分词技术——统计分词

中文分词方法 本文参考自书籍《Python自然语言处理实战&#xff1a;核心技术与算法》 用做个人的学习笔记和分享 1. 规则分词 规则分词的详细笔记 2. 统计分词 2.1 一般步骤 建立统计语言模型。句子划分为单词&#xff0c;对划分结果进行概率分析&#xff0c;获得概率最大的…

你的模型真的陷入局部最优点了吗?

小夕曾经收到过一个提问&#xff1a;“小夕&#xff0c;我的模型总是在前几次迭代后很快收敛了&#xff0c;陷入到了一个局部最优点&#xff0c;怎么也跳不出来&#xff0c;怎么办&#xff1f;”本文不是单纯对这个问题的回答&#xff0c;不是罗列工程tricks&#xff0c;而是希…

如何与深度学习服务器优雅的交互?(长期更新)

0. 故事序言 如果有人问小夕&#xff1a;"小夕&#xff0c;要是人工智能的就业岗位一夜之间消失了&#xff0c;你会去转行做什么呢&#xff1f;" 答曰&#xff1a;"当然是去做Linux运维啊23333" 小夕有一台自己负责的GPU服务器&#xff0c;她可让小夕操碎了…

风控模型师面试准备--技术篇(逻辑回归、决策树、集成学习)

原文地址&#xff1a;https://zhuanlan.zhihu.com/p/56175215 编辑于2019-02-12&#xff0c;持续更新中&#xff0c;有风控建模工作经验的&#xff0c;或者想转行风控建模的小伙伴可以互相交流下... 一.算法 逻辑回归决策树集成学习&#xff08;随机森林&#xff0c;Adaboost&…