设计一个业务流程与WCF服务交互

在上篇,我们已经通过WCF适配器获取到了外部服务(演示中是Web service)的元数据,并导入到了我们的BizTalk项目中。通过BizTalk,可以将来自外部这些异构系统当中的服务重新进行流程的编排,根据我们的业务需求进行设计,搭建面向服务的架构体系(SOA)。

下面来介绍一下将要在演示中创建的这个流程的步骤:

  1. 从外部接收一个贷款申请的消息,将消息命名为msgLoanApplication;
  2. 将接收到的消息进行转换,转换为LonesomePine服务能够接收的请求消息类型,将转换后的消息命名为msgLoanServiceRequest;
  3. 发送转换后的消息至外部的LonesomePine服务,该服务会根据SSN的值来计算信用卡积分并进行贷款申请的审批;
  4. LonesomePine服务将审批的结果作为响应消息发送回给流程,将该响应消息命名为msgLoanServiceResponse;
  5. 接收到服务的返回值后,会创建出一个新的消息,它包含来自服务的响应消息以及贷款申请表中的基本信息,并将这个新消息命名为msgFinalLoanDocument;
  6. 最终将是一个包含全部贷款申请所需要的信息及批复状态的消息,这个消息可以被其他系统或业务人员订阅,根据这个消息去处理相应的业务。

1. 在解决方案资源管理器中,双击ConsumeService.Orchestrations下的LoanProcessing.odx,当前这个业务流程是空的。

2. 从上图中我们不仅能看到BizTalk有一个图形化的业务流程设计界面,并且还提供了左侧工具箱当中的众多业务流程组件,通过这些组件,我们可以设计出基于BPEL4WS标准并超过这个标准的流程,BPEL4WS在这里不多做介绍,就是一个业务流程的标准,基于这个标准设计出来的流程我们认为它是符合规范并且可用的,BizTalk这些内置的业务流程组件都是基于这个标准研发出来的,所以我在这里能够很自信的说,用BizTalk设计出来的业务流程一定是基于BPEL4WS这个标准的。我们在这里添加如下几个业务流程组件,我会通过表格的方式来描述组件名称及其放置的位置,看不懂表格不必担心自己的智商,下面还会有相应的截图

组件 命名
接收 Get LoanApplication
转换 Create Service Request Message
发送 Send LoanForEvaluation
接收 Get EvaluatedLoan
构造消息 Create Final Loan Document
转换 CreateFinalLoanDocument
判定 Is Loan Pre Approved
发送 Send Approved Loan
发送 Send Denied Loan
3. 编排好的流程如上图所示,是不是很有意思?就像搭积木一样,使用图形化的工具按照我们自己的需求去设计业务流程。设计好之后,设置一个流程发起节点,点击最顶端的接收组件,在属性窗口中,将激活设置为True

创建业务流程中的消息变量

在业务流程中我们需要处理消息,这些消息通过接收端口接收过来,或是通过发送端口将消息发送出去,无论是哪种方式,消息在流程中都需要得到实例化,并进行相应的处理,下面将介绍在流程中创建消息变量,我们可以把一个流程文件(.odx)理解成一个流程模板,将来上线之后成百上千个实例都将跑在我们设计的这个模板上。因此在这里创建的消息,并不特指某一个消息实例,而是一个流程模板中的消息变量。

1. 在业务流程视图中,右键消息->新建消息

2. 在属性窗口的标示符中键入msgFinalLoanDocument,并将消息类型中选择架构节点-> <从引用的程序集中选择…>->引用->ConsumeServices.Schema->FinalLoanDocument->确定

在这里创建的msgFinalLoanDocument消息包含原始的贷款请求内容和批复状态,这个消息我们可以认为它是流程的输出结果。

3. 重复上述步骤再创建一个消息,命名为msgLoanApplication,消息类型为ConsumeService.Schemas.LoanApplication。这个消息是流程触发时接收到的初始消息,是银行的客户发起的一个贷款请求消息。

4. 创建另一个消息命名为msgLoanServiceRequest,选择该消息类型多部分消息类型->ConsumeService.Orchestrations.LoanProcessingService_IsApproved_InputMessage

这个消息用来请求一个外部的名为LonesomePine 的Web services服务,该消息会包含来自原始贷款申请中重要的详细信息,该信息中的数据将是LonesomePine 服务用来决定贷款审批是否通过的判断条件。

5. 按此方法创建最后一个消息变量,命名为msgLoanServiceResponse,选择该消息类型多部分消息类型->ConsumeService.Orchestrations.LoanProcessingService_IsApproved_OutputMessage。这个消息将从LonesomePine服务收到一个批复的响应消息。

转载于:https://www.cnblogs.com/hainange/archive/2011/04/06/6153613.html

BizTalk Server 2010 - 使用 WCF Service [ 中篇 ]相关推荐

  1. BizTalk Server 2010新功能介绍(六):BizTalk Mapper (下)

    在前一章里我们介绍了BizTalk Mapper的三个新功能:自动滚屏显示相关节点和链接.自动链接架构元素和相关视图.这一章里我们继续介绍更多的新功能,包括:高亮显示相关匹配的Schema(架构)节点 ...

  2. BizTalk Server 2010新功能介绍(四):基于安全连接的FTP适配器

    BizTalk Server是微软构建业务流程和集成解决方案的首选服务器,BizTalk Server 2010是这个产品线的第7个主要版本,提供对Windows Server 2008 R2.SQL ...

  3. BizTalk Server 2010 + SQL Server 2008 R2 - 通过集成创造更大价值 [ 上篇 ]

    概述 对于IT信息技术来说,应用程序和数据就好像太极的阴阳两极,通过对这两者进行组合,即可获得 IT的业务价值.虽然公司.ZF机关需要使用大量不同应用程序,并用不同格式存储数据,但为了从这种多样化中充 ...

  4. BizTalk Orchestration Publish Host In-Process Wcf Service without IIS 多种供客户端调用方式

    BizTalk Orchestration Publish Host In-Process Wcf Service without IIS 多种供客户端调用方式 BizTalk Server 2006 ...

  5. BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息

    SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...

  6. Exchange server 2010 beta安装部署流程

    本文使用了微软公开发布的exchange server 2010 beta进行部署测试.这篇文档将用到下列产品 windows server 2008 64bit enterprise AD func ...

  7. Exchange server 2010系列教程之一 安装Exchange 2010准备条件

    Exchange server 2010系列教程之一 安装Exchange 2010准备条件 最近看了不少论坛和资料,许多人安装Exchange 2010都有问题啊,说实话,我自己开始也出现不少问题, ...

  8. SharePoint Server 2010 安装图解

    harePoint Server 2010作为MOSS 2007的升级版本,自从2009年底发布Beta版本以来就备受关注,网络上已经出现了很多相关的文章,其中也不乏中文的信息. 最近SharePoi ...

  9. Lync Server 2010迁移至Lync Server 2013故障排错Part1:缺少McsStandalone.msi

    最近将公司的Lync Server 2010平台全部下线了,但是在下线过程是还是遇到了POC环境中未出现的问题,在从拓扑中删除所有Lync Server 2010组件后,去Lync Server 20 ...

  10. 安装部署及升级到Exchange Server 2010

    本文档详细的描述了,如何在Windows Server 2008 R2的环境下安装Exchange Server 2010,包括的内容有: 先检查组织环境: 1.请确保林的功能级别至少为 Window ...

最新文章

  1. 原来这样做运维,就可以不被 KO丨课程推广
  2. Problem A: 编写函数:三个数的最大最小值 (Append Code)
  3. Go 语言 cannot find module providing package github.com/
  4. mysql caching_sha2_password异常分析
  5. GridView 序号 排序 正序 倒序
  6. 后续的C++测试并不一定会成功
  7. linux nginx 系统服务,linux 把nginx加入到系统服务的方法
  8. PHP 霸主地位被动摇,JIT 是穷途末路后的绝地反击?
  9. 字符串是单一字符的无序组合吗_Python中拼接字符串的多种方法, 你想了解吗?...
  10. eclipse tomcat找不到或无法加载
  11. 批量word删除页眉页脚——VBS脚本,在office宏中运行即可
  12. Navicat 中文破解版
  13. Spring之事务传播行为
  14. SDL入门教程(七):SDL抠色(Color Keying)
  15. 盘点2011年的网络流行语
  16. IE6双倍margin问题
  17. picoCTF 2022 wp
  18. 解密“CDO-首席数据官”的价值、挑战及发展
  19. 强烈推荐!10个超赞的C语言开源项目
  20. Qt浅谈之八:富文本转换成pdf

热门文章

  1. (转)1.43亿用户信息泄露案后 美国征信机构CEO离职
  2. Julia: find 和其它
  3. 阿里云罗庆超:我为什么写《对象存储实战指南》这本书
  4. 中秋福利!开源基础设施峰会9折票!另有限量免费门票!
  5. 【优化预测】基于matlab粒子群算法优化BP神经网络(多输入多输出)【含Matlab源码 1418期】
  6. 【光学】基于matlab GUI模拟波动光光学系统【含Matlab源码 1064期】
  7. 【图像拼接】基于matlab Harris角点检测图像拼接【含Matlab源码 517期】
  8. 【优化调度】基于matlab粒子群算法求解燃机冷热电优化联供问题【含Matlab源码 330期】
  9. linux git 撤销删除文件,git 撤销回滚学习
  10. 坐标系转换--筛选高于RMS的强源-------ska暑期训练