您的位置:首页 > 其它

Web 服务概念性体系结构(WSCA 1.0)WSCA 1.0 第 4 部分

2006-11-14 15:23 447 查看
业务流程、工作流和 Web 服务

Web 服务是可以组合的;这是 Web 服务的一个重要特征,这在本文的前面部分已经有所阐述。工作流作为组合 Web 服务的一个重要的主要机制,对于快速创建新的、功能更强大的 Web 服务来说至关重要。工作流将为组件 Web 服务之间的交互提供运行方式。

业务流程是一些表示活动的图,这些活动将完成某种有意义的业务操作。举例来说,购买飞机票、管理仓库库存和为家庭或办公室订购家具都是业务流程。长期运行的事务,如跟单直至完成或支持协作计划、预测和补货(CPFR)也属于业务流程。业务流程从粒度的级别上有所不同,而且它的细节也因公司的差异而有所不同。

工作流是使用如 IBM MQSeries Workflow 之类的工具在 IT 环境中运行的业务流程。工作流工具允许企业将它们的每个业务流程定义为一系列由个人或应用程序完成的活动,并根据来自每个单独行为的输出数据改变系列中活动的执行顺序。

如上所述,Web 服务是工作流中引人注目的组件,因为它们可以动态地组成,或者编入工作流中,而且网络上有大量可用的 Web 服务。这一部分将从 Web 服务的角度描述工作流的基础体系结构,而且要特别地:

说明工作流可以用何种方式组合并转换为 Web 服务。

说明 Web 服务工作流的不规则本质,以及每个加入工作流的基于 Web 服务的活动反过来如何由低级别的工作流组成。

引入启用服务支持电子商务 Web 服务的概念,并说明如何在工作流中结合这种启用服务和电子商务 Web 服务以支持客户流程。

引入业务流程层次结构中公共工作流中的活动由私有工作流实现的概念,而私有工作流的活动则相应地由作为通过脚本绑定在一起的 Java 组件而实现的工作流实现。

这一部分主要讨论工作流作为组成和编排跨企业 Web 服务的手段。然而,工作流并不是企业中组成或编排 Web 服务的唯一方法。JavaScript 脚本编写和微流(microflow)也可以用于这个目的。请参阅 IBM Web Services Roadmap,那里有关于这些其它方法的很好的讨论。








回页首
一个简单的 Web 服务工作流

图 11 说明了一个有关 Web 服务的简单的工作流。

图 11. 简单的工作流



在图 11 中,购买者服务(buyer service,它也许是一个简单客户机)从销售者服务(seller service)订购货物。销售者服务是使用 WSDL 定义接口的 Web 服务。购买者服务使用 SOAP 和销售者服务的 WSDL 定义调用销售者服务上的订购方法。购买者服务知道 SOAP 响应消息中可以期望到什么,因为这在销售者服务的 WSDL 定义中有所定义。

图 11 展示了工作流中涉及的每个 Web 服务的收件箱和发件箱。如本文前面所描述,收件箱和发件箱通常用 WSDL 定义。封装创建购买者服务的代码的工具通过分析和转换销售者服务的 WSDL 描述派生销售者服务的发件箱或 API 的格式,并通过分析 WSDL 描述了解将从销售者服务得到什么。图 11 中的收件箱和发件箱是这个分析活动的符号表示。








回页首
电子商务服务和启用服务

图 11 说明了一个涉及两个 Web 服务(或者根据购买者的属性,也可以说是一个 Web 服务和一个服务请求者应用程序)的简单工作流。现在请您考虑一个稍微复杂一点的工作流,如图 12 所示。

图 12. 更复杂的工作流



在图 12 中,销售者服务在向购买者发送货物之前使用一个信用验证服务(credit validation service)来确保购买者能够为货物付款。信用验证服务是一个电子商务服务普遍可用的第三方 Web 服务。

在本示例中,购买者服务和销售者服务是进行与企业业务直接相关的活动的电子商务服务。另一方面,信用验证服务是很多电子商务服务可以用来帮助执行业务流程的启用服务。启用服务的其它示例包括满意度跟踪服务、安全服务,以及为没有自己的工作流基础结构完成相关服务的公司托管私有工作流的工作流服务。








回页首
组成的工作流、公共工作流和私有工作流

如图 13 所示,在工作流中充当活动的 Web 服务本身就可以由一系列有序的活动(或一个工作流)组成。

图 13. 组成的工作流



图 13 中的销售者服务实际上是一个封装为单独 Web 服务的完整工作流。销售者服务由信用验证活动、库存管理活动和客户记帐活动组成。销售者服务使用单独的 WSDL 定义向购买者服务体现的是单独的接口,这样就隐藏了它封装的低级别工作流的细节。在图 13 中,为销售者服务提供工作流的企业并不向寻找使用销售者服务的公共应用程序和服务公开此服务的细节。这就是说销售者服务参加公共流,而组成销售者服务的工作流却是私有流。

在工作流之外组成活动或 Web 服务的方法非常有用,它可以应用于多个粒度级别。图 13 说明了三个级别的工作流粒度。

图 14. 工作流的进一步组成



在图 14 中,库存管理服务本身看上去由包括几个步骤的工作流组成。还请注意,在图 14 中,作为用于销售者服务的工作流一部分的信用验证服务实际上在公共因特网上运行,并使用公共信用服务,它可能查找和绑定从注册中心(如 UDDI)检索到的使用信息。

最后,图 14 说明在所有 Web 服务的下面是经过编码的应用程序。在图 14 中,客户记帐服务实际上是一个封装过的 Enterprise JavaBean <=>(EJB),它反过来也是客户应用程序的一部分。








回页首
工作流的业务流程层次结构

图 14 说明了工作流如何能够存在于不同级别之上。图 15 是对图 14 细化的结果,它展示了工作流如何在代码级上也能够存在。图 15 还说明了如何将工作流映射到真正的中间件产品上。

图 15. 业务流程层次结构



在图 15 中,库存管理服务中的活动被替换(为 EJB),对公共信用服务的访问是通过封装为充当 Web 服务客户机应用程序的 EJB 而实现的。图 15 中还使用了一些支持业务流程层次结构中不同层的 IBM 中间件产品。

MQSeries Workflow 是来自 IBM 的一个中间件产品,它将来可能会支持定义由 Web 服务组成的工作流的 WSFL,并包括来自低级别工作流的 Web 服务。IBM 将与其伙伴合作开发出一种满足这些需求的标准语言。WSFL 是 IBM 对这个标准化过程所作出的贡献。在一种工作流定义语言(如 WSFL)被标准化之后,IBM 和其它公司很可能都会支持这个语言。要了解更多关于 WSFL 的信息,请参阅 Web 服务流语言(Web Services Flow Language,WSFL 1.0)

在图 15 所示的最低级,EJB 直接地或通过连接器访问已有的客户应用程序来完成与工作流相关的实际服务。这些 EJB 在 IBM WebSphere Application Server 提供的容器中运行,可以使用 IBM VisualAge for Java 创建并使用 IBM WebSphere Studio Technology Preview for Web Services(或其它合适的工具)封装到 Web 服务中。

图 15 中说明的私有流可以在 SOAP 和 HTTP 上初始化,也可以在 MQSeries 上运行,MQSeries 也支持 SOAP,而且提供了更好的安全性和有保证的传递。一般而言,网关可以处理使用 HTTP 上的 SOAP 的外部公共流和企业内部可以利用的信息总线(如 MQSeries 和 IBM WebSphere Application Server 提供的 RMI over IIOP 支持)内部流之间的阻抗不匹配。

最后请注意,在图 15 中实现库存管理服务的三个 EJB 实现实际上组成了一个工作流。这个工作流大体上可以用 WSFL 来描述,它的顺序可以作为微流完成。这种类型的工作流涉及到实际代码组件,而且显然与图 15 中说明的其它流级别有关。IBM 计划调整它的 VisualAge 和 Studio 工具,以便于在图 15 中说明的所有不同级别上可视化创建工作流,顺序是从公共工作流到私有工作流再到微流。








回页首
层次结构工作流和对等工作流

迄今为止,我们在本文中展示的工作流都是层次结构的,也就是说它们都是自我包含的,所有业务流程活动都是同一个工作流的一部分,而在某些情况下,代表活动的 Web 服务本身就是工作流。对等工作流包括两个或更多独立执行的工作流,它们用会话来完成整个工作流。举例来说,要完成所需的工作,一个工作流中作为活动的 Web 服务可能会向同一级中另一个工作流中作为活动的一个 Web 服务发送消息,然后在继续之前一直等待响应。








回页首
Web 服务工作流的现状和将来

为 Web 服务工作流标准所作出的努力和其它一些 Web 服务标准倡议(如 SOAP,即 XML 协议,还有 WSDL)最初所作的努力相比还远远不够。然而,IBM 和其它公司正在努力制定 Web 服务流定义和 Web 服务工作流端点定义的标准。与 SOAP 和 WSDL 的标准一样,这些标准应该很快就会被同意并批准。IBM 对 Web 服务流定义的 IBM 标准候选是 Web 服务流语言。

如本文前面部分所描述,在标准被批准之后,IBM 和其它中间件供应商应该很快地为面向 Web 服务的工作流提供工具和运行时支持。同时,要开始使用已有的 Web 服务技术(如 WebSphere Technology for Developers、MQSeries Workflow、MQSeries Integrator 和 WebSphere Business Integrator)实现工作流,还有很多事情可以做。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: