构建SOA组合业务服务,第9部分

第9部分: 面向灵活性和可配置性的业务流程并行活动模式

这个文章系列主要介绍了组合业务服务 (CBS) 的开发,本文是其中的第 9 部分。可以通 过组合现有的 SOA 服务得到 CBS,或者作为一个新的服务创建 CBS,它们的目的都是提供可 配置性。本文介绍了用于为 CBS 设计业务流程执行语言 (BPEL) 流程的并行活动模式。本文 提供了一个银行用例示例,该用例实现了这种模式,以便在从 CBS 构建的简单应用程序中创 建灵活的、可配置的业务流程。本文描述了一个利用 BPEL 并行活动来实现实际用例的解决 方案。可以实例化多个并发流程,并发流程的数目是不确定的,可以由业务对象在运行时指 定。本文首先简单介绍了并行活动模式,然后提供了一个贷款请求用例,通过这个用例您将 了解如何使用并行活动模式以实现灵活性和可配置性。

回顾贷款请求用例

您可以查看本系列中的其他文章以获得到目前为止有关这个用例场景的详细信息。在这个 场景中,贷款请求用例是在某个银行客户使用该银行的 Web 门户申请贷款产品时触发的。来 自银行的、基于 Web 的用户界面的贷款应用程序的提交操作,将调用贷款审批 BPEL 流程。 这个流程将从该客户的配置文件中检索他的社会保险号,并使用这个编号来调用一个信用检 查 BPEL 流程,从而实现了并行活动模式。信用检查 BPEL 从多个代理处获得一份信用评分 的列表,并将该列表返回给贷款审批流程。根据信用检查 BPEL 流程所返回的列表中的实际 信用评分,可以自动地拒绝或批准这个贷款请求,或者将其转发以便进行人工审核。根据信 用检查 BPEL 流程所返回的列表计算平均信用评分,通过一组基于这个评分的业务规则作出 相应的决策。

当一个贷款请求需要人工审核时,贷款审批流程将调用另一个 BPEL 子流程,其中包括人 工任务的使用。将信用评分列表转发到这个 BPEL 子流程。该银行将检查这个信用评分列表 以及与申请者相关的附加信息,并决定是否应该批准这个贷款请求。

使用并行活动模式

在开始设计 BPEL 流程时,您可以使用任何模式,如同步模式 、基于状态模式、或者并行活动模式的不同类型(请参见参考资料)。这个部分介绍了一种 并行活动模式,这种模式在进行 BPEL 设计的时候不需要知道并行活动的数目。对于直到运 行时才能确定要调用的实例数目的情况,这种模式可以并发地调用多个 BPEL 流程实例。这 种模式还可以确保在工作流结束之前完成所有的流程实例。即将推出的 WS-BPEL 2.0 规范中 计划包含这种并行活动模式,其中使用了一个新的 BPEL forEach 活动,以及子流程并行调 用的一个关联标志。本文描述了如何遵循并行活动模式并使用现有的 WebSphere Integration Developer 6.0 工具来实现其中每项活动的功能。图 1 阐释了这个模式:

图 1. 并行活动模式

名为 MultiInvokeRun 的父 BPEL 流程(如图 1 中的上半部分所示)使用一个名为 InvokeAll的循环元素(如图 1 中的左上部分所示)进行重复的、单向的(异步)调用。第 二个循环称为 WaitReplies(如图 1 中的右上部分所示),它并行地运行,并且在子流程( 如图 1 的下半部分中描述的 MultiInvokeChild 流程)完成时用于接收通知。在第一次调用 之前,对于每次循环,都会在 MultiInvokeRun 流程的 SetUpCounters 活动中初始化一个计 数器。可以在运行时通过这个计数器来帮助指定子流程的数目。直到接收到来自所有子流程 的通知,WaitReplies 循环才会结束。当 WaitReplies 循环结束时,父 BPEL 流程 MultiInvokeRun 也就完成了。

时间: 2024-09-13 11:35:57

构建SOA组合业务服务,第9部分的相关文章

构建SOA组合业务服务专题

从 2007 年年初开始,我们陆续地向您推出了"构建 SOA 组合业务服务"系 列文章.它通过一个银行业的例子十分全面地向您介绍了如何构建 SOA 组合业务服务以及相 关方方面面的知识.同时还涉及了很多 IBM 相关的产品,比如Websphere Process Server, WebSphere Integration Developer,WebSphere Portlet,Rational Application Developer 和 DB2 Universal Database

构建SOA组合业务服务,第7部分: 为组合业务服务提供多分租支持

引言 本系列之前的文章介绍了组合业务服务 (CBS) 的概念,并讨论了其需要的部 署环境的一些核心元素.本文将介绍多分租(即从共享的公共承载环境中为多个组织(客户 )提供服务的能力).另外还将介绍软件作为服务(Software-as-a-Service,SaaS)的网络 交付方法及可能会利用 SaaS 多分租的不同用户类型.我们将介绍在 SaaS 承载环境中支持 多分租的原则和技术实现.本文提供了使用 WebSphere Process Server 和 WebSphere Portal.虚拟门

构建SOA组合业务服务,第10部分

第10部分: 使用WebSphere Process Server和WebSphere Service Registry and Repository提供对服务消费的治理 通常,SOA 治理的重点是服务提供方,特别是在服务生命周期方面.很少将注意力放在消 费方或订阅方.谁应该能够看到或发现相关的服务端点?或者,发现服务的人怎样发送请求 以使用该服务?或者,与授权访问该服务相关的流程是什么?这些问题的答案因客户而异. 本文在一个称为 Jivaro Bank 的虚拟原型组合应用程序的上下文中回答了这

构建SOA组合业务服务,第8部分

第8部分: 使用WebSphere Portlet Factory动态概要构建多个承租者的Portlet 这篇文章是本系列文章的第 8 部分,主要介绍组合业务服务 (CBS) 的开发.CBS 提供了 集成现有技术和产品以反映所需业务意图的功能,如可配置性.IBM WebSphere Portlet Factory 是一种 Portlet 创建环境,它可以简化和加速 Portlet 的开发.部署. 维护和重用.本文介绍了通过利用动态概要,如何使用 WebSphere Portlet Factory

构建SOA组合业务服务,第5部分: 使用IBM WebSphere Business Modeler

本系列讨论如何开发组合应用程序来支持业务服务,本文是其中的第五篇文章.组合业务 服务组件符合服务组件体系结构的要求,是使用集成工具集开发的,此集成工具集包括 IBM WebSphere Business Modeler (WBM) 和 IBM WebSphere Integration Developer (WID).这些工具生成的构件的运行时是 IBM WebSphere Process Server.本文将说明有关 使用 WBM V6 进行业务流程的建模.组装和部署的最佳实践.另外,本文还将

构建SOA组合业务服务,第2部分

第2部分: 将业务集成项目从WebSphere Application Developer-IE v5.1迁移到WebSphere Integration Developer v6.0.1 本文是一个考虑开发组合应用程序的系列的一部分.组合应用程序集成现有的SOA服务并 创建能够以不同的方式组合的新服务.我们最初使用WebSphere Application Developer IE v5.1开发了一个演示组合应用程序,其中使用了WebSphere Business Integration SF

构建SOA组合业务服务,第1部分: 开发SOA组合应用程序来支持业务服务

引言 组合应用程序提供了集成现有面向服务的体系结构(Service-Oriented-Architecture, SOA)服务和/或创建能够以不同方式进行组合的新服务的能力.组合应用程序的关键是使用 SCA 将可重用软件资产作为 SOA 服务实现创建.我们使用 WebSphere Process Server. WebSphere Portal.WebSphere Service Registry and Repository.WebSphere Enterprise Bus.WebSphere

构建SOA组合业务服务,第3部分

第3部分: 在WebSphere中使用REST体系结构样式构建可使用的Web服务 本系列讨论如何开发组合应用程序来支持业务服务,本文是其中的第三篇文章.本文的重 点是代表性状态传输(Representational State Transfer,REST)体系结构样式.通过使用 Facade 组件作为 REST 样式的接口,现有的 SOAP 样式的 Web 服务支持可自定义的 URL. 多资源格式表示.浏览器响应缓存.大型附件的流化以及使用 HTTP 方法来操作资源. 引言 代表性状态 (RES

构建SOA组合业务服务,第4部分

第4部分: 使用公共事件基础设施开发可测量的组合应用程序 本系列讨论如何开发组合应用程序来支持业务服务,本文是其中的第 4 部分.为了确定 组合应用程序是否满足所确定业务目标,应用程序需要为可测量的.本文讨论如何在基于公 共事件基础设施的三个可重用构件的帮助下开发可测量的组合应用程序.我们将从中了解为 什么需要构件,以及如何使用其对组合应用程序进行测量. 引言 WebSphere Integration Developer 和 WebSphere Process Server 将公共事件基 础设