|
Web服务内幕,第7部分:WSFL和递归组合本文关键字 理论探讨 广告 Web服务内幕,第7部分:WSFL和递归组合
Web
服务体系结构最引人注目的承诺之一是它允许新的交互类型以及新的流程类型出现。兑现这个承诺的一部分工作是提供一个允许通过组合现有流程和服务来建立那些新流程的框架。Web
服务流语言(Web Services Flow
Language,WSFL)对其“递归组合”原理做了完整的介绍,这个原理允许完整的商业流程作为活动被嵌入到其它的流模型中。Web
服务内幕的这一部分通过说明“递归组合”背后的思想为这个介绍 WSFL 的系列画上了句号。 递归组合介绍 图 1:Web 服务的递归组合
在这个案例中,您不用在意我的 WSFL 流模型是什么样子,只是希望能够将购买订单推进这个模型来使整个流程运转。而我也真的不在意您的 WSFL 流模型是什么样子,我只希望接收到您的购买订单,这样就可以让这个流程继续进行。WSFL 支持递归组合,允许您和我用某种方法将我们的两个商业流程链接起来,这种方法要求我们只要在提交的购买订单的格式上达成一致即可。在保持分布式工作流体系结构时,这可以简化进行商业活动的方法。 商业流程的私有生命周期 图 2:导出 WSFL 中的单个活动
首先,设想一个非常简单的工作流流程,如图 3 所示。 图 3:一个非常简单的工作流流程
清单 1:股票订购流模型 _ _ _ 牋牋_ _ _ _ _ _ _ _ _ 其中的两个操作,查看股票和卖出股票,要求商业流程与商业流程自身外部的 Web 服务进行交互,所以我们需要将那些活动作为流程公共接口的一部分导出。我们使用流模型中的导出机制进行此导出操作,如清单 2 所示。 清单 2:添加到流模型中的查看股票和卖出股票活动 WSFL 实现引擎现在可获取全局模型,在整个 WSDL 生成过程中运行此全局模型并创建公共 Web 服务接口(WSDL portType)定义,如清单 3 所示。 清单 3:流模型的一个公共 Web 服务接口
现在,为了解释一下刚才发生的事情,我将要后退一步。考虑一下查看股票操作。实质上,为了执行这个活动,WSFL 引擎必须向一些位于网络外部的股票行情服务发出一个 Web 服务请求。但是,该引擎需要确切知道要进行这次调用,应怎样做以及做些什么。在 WSDL 术语中,查看股票操作是一个请求—响应操作。使用 WSFL 全局模型中的 plug-link 机制,您向引擎提供执行该操作的必要信息并将其绑回到正在执行的商业流程中。 那么如何将其绑回到递归组合中呢?WSFL 工作流中的每个活动都是由 Web 服务公开的操作执行。那些操作通过使用 WSDL 端口类型定义而被公开。WSFL 全局模型和 pluglink 允许您为商业流程的各部分建立 WSDL 端口类型定义。您可以将这两者链接在一起,这样一个流程中的活动就可以通过另一个流程的公共接口实现。图 4 显示一个递归组合流程,其中一个流程中的活动被绑定到另一个流程的公共接口。 图 4: 一个递归组合流程
动态组合 从本质上来说,多个服务提供者可以用完全相同的公共接口实现两个完全不同的工作流。因为他们导出相同的 Web 服务操作集合,他们彼此之间可进行互操作。由于 WSFL 流模型链接到 Web 服务的公共接口(而不是该接口的特定实现),所以两个提供者都有涉足履行活动的能力。WSFL 引擎,以 WSFL 流模型的设计师提供的规则为基础,可在任何给定的情况下动态地确定使用哪个提供者。 包装 我写这一系列文章的目的只是为了向您介绍 WSFL。因此,我省去了许多细节问题,而其它还有一些细节被我完全忽略了。目的是为了帮助您对 WSFL 的基本概念有一个初步了解,而不是要您成为这方面的专家。我建议,如果您已经对 WSFL 的基本概念有了初步的了解,您可以阅读 WSFL 规范。学习这个规范,从头至尾彻底看一下这些概念,并花费一些时间练习将工作流放在一起。而且,和以前一样,如果您有什么看法和问题,请发消息给我。 对流程和工作流进行试验
浏览:Web服务内幕,第1部分 如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐 jill.jiang@amteam.org | 021-51096826-112 | 在线联系 |
前沿论丛2009年第三期——知识管理..国内中小企业普遍存在管理基础薄弱、规范化程度低、信息化基础差等方面的问题,而知识管理的实施难度甚至要高于ERP的实施,因为简单的从上而下压迫式的推行只能做到知识…… |
|
|