BizTalk学习笔记系列之二:实例说明如何使用BizTalk
——.BizTalk学习笔记系列之二<?XML:NAMESPACE PREFIX = O />
Aaron.Gao,2006年12月05日
目前在学习BizTalk的相关知识,发布该系列笔记只是想建立一个完整的知识体系以方便大家共同学习,同时也是在探索一种新的学习方法,通过和园子里的朋友们的探讨来提高学习效率,巩固知识。除此之外别无它意。笔记中内容多来自网络,经本人编辑整理,如有不当之处还往海涵。在此也恳请各位前辈不吝赐教,一并谢过^_^.
(HOW)如何使用BizTalk
作为Microsoft电子商务远景规划的先锋,Microsoft BizTalk Server 2006是一个功能齐全的集成服务器。它建立在Microsoft完善的共享服务电子商务远景规划之上,旨在帮助客户有效和高效地实现业务流程的自动化并对之进行管理,并通过业务流程将内部系统与人和贸易伙伴连接在一起。
下面我们将通过一个应用实例来说明如何使用BizTalk。
在BizTalk Server 2006中,业务流程涉及到将端点与人和资本投资绑定在一起构成一个整体,定义企业为其客户提供的价值。例如,只接受网络订单的零售企业主要通过低价格和快速订单履行提供其主要价值。
为提供这一价值,企业需要快速收集有关人的数据,例如姓名和地址等,并将这些数据与订单数据关联在一起,如订购物品和支付信息等。
处理这些事务可能需要一个简单的四步业务流程:
订单捕捉。通过直接和间接的渠道收到订单,验证格式和营业方针
订单规划。在接受订单之前检查库存和容量,并在订单被接受之后进行订单规划
订单执行。运行完成订单的必需操作,包括所有供应链交互
订单结算。执行与已履行订单相关的财务操作
在传统的开发模式中,这四个步骤由多个团队成员协力设计,然后由软件开发人员完成代码编写工作。大量时间被浪费在开发和管理底层的流程上,而不是在构建业务途径和客户关系上。BizTalk Server模型解决了这一问题。因为不同的设计和部署任务由企业中的不同人员完成,BizTalk Server 2006提供了一系列工具和特性,它们分布在相应的环境中,承担特定的职责。这就为团队成员提供了规划、开发、部署及管理等多个阶段的控制权,让他们在集中精力完成各自工作的同时协作完成整个业务流程。
如下图所示,客户通过公司的外部网站发出订单。公司通过一个订单登记ASP(活动服务器页面)页面捕捉订单数据,并将其传送至一个Web Service,然后由该Web Service进行订单规划。
<?XML:NAMESPACE PREFIX = V />
订单规划首先从两个外部系统——工厂规划和APT(Available-to-promise,物流库存)处收集信息。工厂规划是一个老式系统,它在经过包装后提供Web Service支持;APT是新一代的.NET系统,以一组Web Service的形式呈现给用户。
订单履行步骤更新两个企业系统:SAP(订单管理系统)和分销(仓库和运输)。为保持这两个系统间的同步,该更新必须在一个业务事务中完成。因为分销系统是一个批处理系统,订单分批放在一个队列中,以准备夜间的处理。然后系统设置后续的退货批处理并将其与订单进度关联在一起,并使用补偿费处理被拒绝的订单。
随后,公司添加一个Siebel客户管理管理(CRM)v7系统,负责解答客户有关其订单的查询。该系统提供了一个专属的API(应用编程接口),通过这一接口,公司的开发人员可以修改和扩展编排,并将CRM系统并入BizTalk Server适配器框架。BizTalk Server消息信封确保经过增强的业务流程中消息传输的可靠性,同时还提供了商业交易和错误补偿。
订单履行必须从供应商处外购组件。因此,公司需要安装和配置B2B系统所需的合作伙伴(供应商)及一些传统的元件,如安全性、合作伙伴管理及多协议支持等。
合作伙伴设置通过SEED(Super Effective Efficient Deployment)技术得以简化,并由中心(公司)和分支(合作伙伴)两端的IT人员执行。
在公司开始与合作伙伴交流信息(订单)后,它可以通过BAM(Business Activity Monitoring,业务活动监视)和HAT(Health Activity Tracking,健康活动跟踪)跟踪这些信息和查看流程,后者提供了有效的集成视图。
最后,在完成订单结算步后,BizTalk Server与企业的财务系统集成在一起,处理相关的财务操作,如支付、订单生成和确认等,从而完成该订单的执行。
第1步:设计流程
参与者:商业分析师、IT结构设计师、开发人员
作为业务流程的催化剂,商业分析师提供了流程的最初提案,然后将其交至负责设计的开发人员。过去,提案仅仅是一个书面上的临时设计。但BizTalk Server 2006包含了商业设计师编排设计器(ODBA)。商业分析师可以通过这一图形工具将各种流程形状拖至绘图板上,为形状添加注释,然后将绘图保存为兼容文件,供开发人员导入至Visual Studio .NET。
通过Visual Studio .NET中的编排设计器(开发人员一方对应于ODBA的工具),开发人员可以解释商业分析师提供的绘图,并按照绘图中的设计拖放合适的编排形状,构建业务流程。这一工作是在与商业分析师和IT结构设计师的配合之下完成的。
第2步:构建应用
参与者:开发人员
基本的BizTalk Server应用,如订单处理流程,由四个主要组件组成:架构、映射、管道和编排。开发人员可以使用Visual Studio .NET中的工具——BizTalk编辑器、BizTalk映射器、管道设计器和编排设计器创建这些组件。
编辑器和映射器
架构用于描述企业内部或与贸易伙伴之间交互的数据的格式。BizTalk编辑器允许开发人员定义架构。例如,BizTalk编辑器可以创建新的或编辑现有的XSD架构,在本例中,XSD架构描述了客户订单的输入数据和Seibel和SAP输出数据。
BizTalk映射器是BizTalk编辑器在Visual Studio环境下的伴侣工具,开发人员可以使用该工具以图形的方式定义如何将某一架构下的消息转换为另一架构下的消息。例如,在该应用场合下,客户订单文档被映射为库存规划应用所需的格式,或者被映射为Siebel和SAP应用所需的文档。
管道设计器和编排设计器
在完成数据格式的定义和映射的构建工作后,开发人员可以通过管道设计器和编排设计器的图形界面创建一个简单的自定义管道和编制。
管道设计器允许开发人员对传入和传出的消息进行加工,以为进一步的处理做准备,例如对消息进行加密和解密、压缩、重新格式化及确认等。本应用场合中的定制管道(接收和发送)可以使用MIME(Multipurpose Internet Mail Extensions,多用途Internet邮件扩展协议)或Secure MIME(S/MIME)进行编码和解码,为验证目的分解和重新组装XML流,并向发出订单的一方发出响应。
编排设计器允许开发人员以可视化的方式使用编排形状,如发送、接收、转换、处理等,以在一个图形界面中协调所有的B2B编排。BizTalk Server 2006然后将该工作流保存在一个可执行ODX文件中。该文件就是所谓的编排,运行时引擎可以使用该文件执行业务流程。开发人员无需编写任何编码来将业务流程绑定在一起;代码位于专用业务逻辑的个别组件中,而不是在包含这些组件的实现方式中。
通过以图形化的方式设计业务流程,BizTalk Server允许开发人员极大地缩减编程时间,精简维护工作,同时简化复杂的电子商务流程的分析工作。在这一四步骤的示例中,企业实现一个编排,用于处理对其SAP企业资源规划(ERP)系统和Siebel CRM系统的调用,并将一个文档加入至一个队列中,供基于主机的分销系统批量处理这些调用。BizTalk Server编排处理所有消息的相关性,并将所有处理和补偿逻辑包装在一个长期运行的原子事务中,其中补偿逻辑负责在一个或多个流程发生故障时回滚所有处理。
对于编制设计器,图表即是程序,它自行完成多数实现工作,让开发人员将更多的时间花费在分析和生产阶段上。应用生命周期的开发和测试阶段得以极大缩减,在某些情况下甚至消失。
开发人员可以方便地创建和使用Web Service,以易于管理和直观的方式组合独立但相关联的业务职能。BizTalk编排为松散关联的业务模型提供了内建的支持,不同种类的组件可以互相交互,而无需遵守需要高度相互依存关系的严格的、复杂的规则。这使得开发人员可以灵活地处理拥有不同后端、不同格式和异步操作的大型复杂系统。通讯是标准化的,端点则是抽象的。
状态管理是电子商务成功的关键所在,BizTalk编排的多个特性可以协助状态管理,如健壮的事务模型和异常处理工具等。
业务规则引擎
业务规则是控制业务流程行为的语句。Microsoft业务规则框架允许开发人员独立和无缝地更改代码、流程和规则。一个强大的业务规则引擎和一个多用途的业务规则设计器帮助开发人员完成这些操作。与传统开发周期不同的是,开发人员无需更新代码即可更新规则和策略。
开发人员可以创建词表并将业务逻辑与数据绑定在一起;商业分析师可以近乎实时地更新策略; IT管理员可以部署和管理策略,并监视所得的结果。
在本应用场合中,业务规则引擎被用于实现特定的业务逻辑,该业务逻辑在企业接受客户订单后决定哪个供应商供应原材料。运行时推理功能增强了BizTalk Server的供应商支持功能,这只是业务规则引擎的一个方面。业务规则引擎可以支持任何需要更大业务逻辑灵活性的场合。当业务流程与编译后的应用相分离时,业务逻辑可以按需进行修改,而无需重写、重新编译和重新部署该应用。
异步同步
Web Service是实现高度分布式应用的关键技术。但是,在一个松散关联的分布式环境中构建应用给负责设计该应用的IT结构设计师带来一些难题。
使用Web Service的许多应用以传统的同步方式调用这些服务,这意味着发出调用的应用不能处理Web Service不可用或Web Service响应超时的情况。在构建跨企业界垒的应用时,结构设计师通常不能控制Web Service的响应性或可用性。
解决方法之一就是解除Web Service与该应用的关联关系。也就是说,应用以异步方式地发出一个服务请求(通过代理),应用服务确保该请求最终被提交至Web Service进行处理。当然,系统还必须能够将响应返回至发出调用的应用(同样也是异步的),这就是所谓的“异步同步”机制。
该应用场合的后端处理将受益于异步同步模型。例如,客户下了一个订单,并立即收到响应。对客户而言,这似乎是一个无间断的同步过程,但事实上企业在收到订单后通过Web Service向其低延迟的工厂规划和需求履行服务发出调用请求。在这些系统对客户的订单做出响应后,BizTalk Server立即向客户发送订单确认。
第3步:部署应用
参与者:开发人员、IT实现人员
在完成业务流程的设计和构建工作后,业务流程就可以被部署在本地的企业内部服务器和外部的贸易伙伴系统上。
本地部署
对于纯消息传输解决方案和基于编排的解决方案,BizTalk Server 2006都提供了卓越的向上和向外扩充性能。高性能的编排引擎与MessageBox存储和交付体系结构组合在一起,使基于编排的应用场合的吞吐率有了极大的提高。
该编排引擎通过自动事务缓冲池进一步优化了性能。此外,该引擎的向外扩充模型允许编排处理以负载平衡的方式分散在一个BizTalk群集上。
第4步:管理流程和合作伙伴
参与者:IT实现人员,IT管理员
BizTalk Server推出了两个强大的工具——业务活动服务和BizTalk浏览器,帮助企业通过贸易伙伴关系提升其业务流程的效率。
业务活动服务是贸易伙伴及与其相关联的业务流程的“活动中心”,它帮助企业轻松地管理和运行所有贸易伙伴及与其相关联的业务流程。业务活动服务允许企业捕捉和保存配置文件(代表贸易伙伴的虚拟“名片”)和一组商业伙伴的复杂关系,这样企业就可以快速利用新的机遇和不断变化的市场条件。
业务活动服务与Microsoft Office和Microsoft Windows SharePoint Services相集成。通过其直观的界面,企业可以以一种支持整个伙伴生命周期的方式组织和配置与内部和外部伙伴相关的全部信息。通过Windows SharePoint Services,即使规模最小的商业伙伴也可以通过执行诸如管理订单、管理新伙伴交互及获取流程度量的关键任务,达到优化自己业务关系的目的。业务活动服务还允许企业通过Office定义和管理大量伙伴配置文件,并以合作伙伴组的形式组织这些配置文件,达到简化合作伙伴配置文件管理的目的。
BizTalk浏览器负责完成BizTalk Server编排的设计时和运行时两个阶段之间的部署后作业,帮助企业将逻辑编排与物理位置绑定在一起。
BizTalk浏览器对象模型是一个被管理的对象模型。它允许公司以编程的方式配置BizTalk Server应用。BizTalk浏览器对象模型可以创建工具和脚本,自动完成在BizTalk浏览器中执行的部署后任务,如创建端口,绑定编排,管理组织属性等。
跟踪与调试
BizTalk编排引擎和运行时使用BizTalk编排设计器中定义的业务流程。编排设计器的形状构成一个专门针对Microsoft .NET框架优化过的BPEL超集,为与.NET组件的互操作提供了强力支持。
编排引擎通过自动化事务缓冲池进一步优化性能。此外,该引擎的向外伸缩模型允许编排处理以负载平衡的方式分散在一个BizTalk Server服务器组上。
在BizTalk Server中,端到端业务流程的跟踪和调试通过运行状况与活动跟踪(HAT)完成。HAT是一个基于Web的用户界面,用户可以经由HTTP访问该界面,通过不同的视图和查询查看跟踪数据。通过HAT,企业可以监视其业务流程的进度,检查业务流程的运行状态,创建自定义视图查看最重要的信息。HAT还可以对挂起的实例进行查询,以调试模式继续该实例,并使用技术详细信息视图添加断点,帮助开发人员一步一步地跟踪活动和调试信息。
参考资源:
http://www.microsoft.com/biztalk/default.mspx
http://www.microsoft.com/china/biztalk/2006/prodinfo/what-is-biztalk-server.mspx