Biztalk 2006 R2是Biztalk 产品到目前为止,最新的版本。R3 还没有正式出来,R3 出来之后就可以跟VS 2008 集成,包括Oslo的支持。据说R3之后的版本才会基于 workflow Foundation Service。所谓计划赶不上变化, PDC 2005 的时候,Microsoft就宣布下一个版本会基于Workflow Foundation。 之后出来2006, 2006 R2,马上 2006 R3,谁知道那个版本才会基于workflow foundation。
为什么说一定要给予Workflow foundation呢?我们知道.net framework 3.0 是个很好的平台。你基于WCF这套可扩展的模型,任何的协议,商业package都可以类似搭积木,陪协议栈一样去集成。 基于WF, 虽然workflow foundation只是个工作流的平台,没有biztalk的 可扩展稳定的消息处理引擎,可视化mapping,基于主题事实的路由,可是有一个非常简单的扩展模型,就是让你的Activity可以自由扩展。这一点也是Biztalk 改进的目标之一,就是biztalk中的Shape 远没有workflow foundation的activity 那么可扩展和定制。
具体展开的几个Blog
- Hello, Biztalk 2006 R2 BAM
- Hello,Biztalk 2006 R2 BAM, WCF 集成
- EDI in Biztalk 2006 R2
- EDI Party Resolution in Biztalk R2
- EDI batch Receiving in Biztalk 2006 R2
WCF的支持。
biztalk 2006 R2 很重要的一点就是引入了对WCF的支持, 这个不是个简单的替换web service 支持的问题。更重要的是引入了一个让你自由扩展对各种系统集成的机会。 在R2之前你要写一个Adapter,比如写一个支持SAP 的adapter是非常的困难。而到了R2只好,你要扩展一个LOB 的支持,不需要去重写一个Adpater,只要利用 WCF Adapter Framework 像是扩展WCF的Binding,Behavior一样。利用Biztak对WCF的支持(元数据,不同的安全要求,不同的Binding), 把你重写的wcf行为配置进去就可以了。 为此,R2的几个LOB Adapter 都是用这种新的模型重写了。会有哪些好处呢?
- 写一次,能够被Biztalk 支持,以及一切能够跟WCF 通讯的Client支持。不想以前写的Adapter,只能够Biztalk使用。所以现在.net 开发人员除了可以用.NET SAP Connector跟SAP集成。也可以用SAp Adapter for Biztalk r2
- 开发人员和管理人员使用一直的管理和配置界面。无非要回答使用那个Opeartion,点击生成Proxy的问题。
一下是SAP Adapter for Biztalk 2006 R2的架构
而之前的呢?
通过 WCF 跟Biztalk集成,相对于Web service,还有哪些好处呢?
使用soap adapter的时候,在run-time 每次都要有两次序列华,反序列化动态编译程序集的问题。到了WCF,Biztalk 和WCf直接就是直接的消息传递。 WCF 的CLient直接送消息给Biztalk,反之亦然。
下次我会讲一下各种WCF跟Biztalk集成的场景和方式。 相对于web service,非常之灵活。 比如,WCF可以控制消息的layout。对应MessageContract,还是DataContract,或者XmlSerilaizer 序列化方式。 使用WCF,有些Binding支持事务,可以从service调用段flow事务到Biztalk。 等等。
BAM的增强
Biztalk可以把异种系统,自治的Service 集成起来。run-time的时候,很多消息流来流去,往返于不同的系统。可能是WCF的服务,或者WF的流程,或者legacy 系统,当然还有Biztalk。 怎么样有一个一致的视图能够告诉用户这些消息流转是否正常,处理能力证明样,Latency有多大? 类似回答一个KPI的问题。希望有那么一个dashboard,用户一看就知道订单处理了多少,那个州的订单额度比较大,比较赚钱? 而要回答这样的一个问题,可能就要到不同的系统中抓数据。能不能够定义一个模型,让各个系统把关键数据按照定义好的关注模型push给中央呢。从Biztlak 2004 的时候,biztalk里面就有了个BAM,2004的时候只支持从流程中提取一些数据, 2006 支持到流程中的消息,而在R2的时候,支持到WCF、WF以及Legacy系统。
由于WCF本省就容易扩展,所以BAM R2 提供了一个EndpointBehavior,配置到WCF。这样WCF 在运行的时候,根据你定义的关注或者拦截模型,就会自动把你关注的数据推给Centrol。
WF也一样,Workflow本省有一个Service扩展模型,BAM R2 提供了一个BAmTrackingService,随着workflow的运行,被命中的事件和数据也会推给Centrol。
如果要是Legacy 系统,bam有个API。
当然WCF、wf需要你写一个xml 配置文件来标注你对那些事件感兴趣,命中的条件以及如何更新Activity模型。
这个xml配置文件没有图形化的配置工具,不想Biztalk的TPE。需要手动写,R2提供了schema,写起来还是很方便。
Interceptor有一个简单的模型,让不同系统写的数据关联到一个Activity所谓的Correlation、Continous模型。下次着重写一个BAM模型。
使用BAM帮你回答了几个问题。
- 如何存储这些数据(可能会很大),交易和分析分开。自动partition
- 访问的API,AOP的配置模型。
- 业务人员简单定义模型。
- Alert模型。
RFID的支持
RFID其实跟Biztalk 没有关系,可以单独使用。 把你去抽象不同的厂商的FRID设备。以及受到数据之后如何派发给不同的handler,比如可能是写数据库,激活一个流程等。帮你在各种RFID设备之上做了一个抽象和简单的管理。 好像到目前,被动模式的RFID标签已经很便宜了。几分钱一个,打算买个reader 和几个标签。把标签贴到身上,在厕所门边装个reader。统计一下一年上了几次厕所,哈哈。做个报表时间,频率等等。
EDI的支持。
早起的Biztalk虽说支持EDI,可是Schema只有一点点。 EDI本省有好多版本,如果你用的话,只能去买Convast的完整版本。R2的时候内置了4G的Schema,比2006丰富多了。
另外加上了AS2的支持。传统的EDI都是基于文件,Ftp。AS2基于Http
关于HWS。
需要人参与的workflow,在biztalk 中有个HWS,human workflow service。R2中没有做任何的加强。如果Biztalk的workflow需要人的参与,以下是集中建议的方式。
1.用SharpointWorkflow,需要人审判和review的消息。通过sharepoint adapter,送到sharepoint站点的文档区。审批通过的话继续执行。
2.用自己的workflow比如windows workflow, 可以用.net framework 3.5的worklfow service,biztalk 想调用一般的wcf service 一样去调用。
3.用商业的package,比如K2.