之前有位技术顾问,来到版工我任职的公司,讲解微软 BizTalk Server 的特性及功能。本帖为我在旁听时,随手写的一些笔记。
BizTalk Server 为微软在 BPM (Business Process Management, 商业流程管理) 和企业流程的协调及整合工具,提供商务规则应用与商务活动监控等能力,且适于和其它各种应用程序、MQ (消息队列)、其它厂商的应用程序 (可能为不同平台),用 HTTP 或 XML 做 adapt (适配),达成数据的绕送和转交、数据格式转换、协调流程的一套工具。其它公司类似的 BPM 工具,还有 IBM 的 WebSphere。
BizTalk 可提供企业自动化及最佳化商务处理程序,其它功能尚有:
- 提供多种 WCF Adapter (适配器) 和向导、支持 RFID (Radio Frequency Identification, 无线射频识别、电子标签) 开发,以及 .NET Adapter Framework。
- 提供各类型的信息交换作业,包括各类型的结构描述,文字转文件…等。
- 提供各类适配器,包括:HTTP、SQL、FILE、MSMQ…等。
- 以 BPM 的角度,提供商务规则应用、商务活动监控…等功能。
- 结合 Web Service 与 WCF,以 SOA (Service Oriented Architecture, 服务导向架构) 展现绝佳的执行能力。
- 结合 SharePoint 与 InfoPath (用图形界面、鼠标拖拽出 XML 格式的表单),让大量的数据与文档文件处理更有效率。
BizTalk 本身不提供数据的存储。BizTalk 接到的数据,经它处理过后,需要再抛转到外面的应用程序或工具;或是先用 ASP.NET、WF 等应用程序处理完一个工作流后,可抛入 BizTalk 做某些数据的处理,然后再抛回应用程序。
BizTalk 内建 Log Audit (审计记录) 机制,可查找像是「每张订单进来之后,经过的所有处理流程、做过什么处理」的信息。
BizTalk 可和 MQ 有效地整合。
补充:
Queue (MQ, MSMQ),消息队列,一种 AP 中「异步」的信息暂存技术,类似 E-mail 或 MSN 文档的传送。MQ 可将应用程序中,像是多个待「审批」的消息,先暂存在内存,或硬盘等永久存储装置中;等主管回来审批后,再将等待的消息取出,让应用程序做后续的处理。
技术顾问对公司里某个项目的建议:
系统的设计,在某一段功能中,可先把数据丢入 queue 暂存,等主管回来后审批;审批过后,再用开发人员写的程序,去处理暂存在 queue 里的信息。
BizTalk 接到数据后,可丢到某一台机器的 queue 再去做处理,或直接透过硬件的 Gateway 转丢出去 (再往下跑后续的流程)。
BizTalk 可用于在公司内部,或公司与公司之间业务流程的协调。BizTalk 可处理运行时间长达数个星期或数个月的业务事务。
BizTalk 可用图形操作界面,做「数据转换 (Mapping)」,可快速将 XML 和 .csv 等文件做格式的转换,且速度很快 (某些产业会有此种特殊需求)。
---------------------------------------------------
BizTalk 在底层仍需要一个数据库。另 BizTalk 中所处理的数据,可自动存储在数据库,不用 IT 人员自己撰码去处理存储的工作。
---------------------------------------------------
BizTalk 的 License 依 CPU 计价 (不管有几核),和 SQL Server、SharePoint Server 类似的授权方式。
BizTalk 分四个版本: Branch、Standard、Enterprise、Developer 版。
定价:
Enterprise: ¥427,135 / 处理器 (34,999 美元)
Standard: ¥105,227 / 处理器 (8,499 美元)
Branch: ¥22,275 / 处理器 (1,800 美元)
Branch 只能服务一个 application (例如 Visual Studio 中的项目)
Standard 能服务五个 application
Enterprise 无限制
微软 BizTalk Server 2006 R2 定价和许可结构概述:
http://www.microsoft.com/china/biztalk/howtobuy/default.mspx
Microsoft BizTalk Server Pricing and Licensing Overview:
http://www.microsoft.com/biztalk/en/us/pricing-licensing.aspx
BizTalk 的 Standard、Enterprise 版,支持和其它机器的 adapt 和联机,有图形配置界面可用,但 Branch 版不提供图形界面,且不提供 IBM DB2 及某些的 Adapter (适配器),也不提供某些数据转换的功能,但 Branch 仍提供流程处理的相关功能。
Branch、Standard 版不支援 HA (High Availability, 高可用性) 的架构,及 Cluster 集群的建设,只有 Enterprise 版提供这两项功能。
附注:多机容错与集群架构,可避免其中一台机器当机或服务发生故障时,影响其它机器的运作。
---------------------------------------------------
银行、金融业这些数据交换量大的企业,或制造业 B2B 的产业链上下游,常需要做电子数据的交换 (EDI),就适合导入 BizTalk 做数据转换、传送和处理,以保证数据能够按照预期到达,并且自动地检测和报告,是否有损坏或不正确的数据。
BizTalk 可通过 Internet 与客户和关键的合作伙伴之间,建立可靠的企业到企业 (B2B) 的贸易关系。
---------------------------------------------------
BizTalk 内部都是用 XML 的配置格式。透过图形界面、鼠标拖放即可用 XML 定义 Schema;以后在做数据转换和文档的处理时,就不用 IT 人员自己写程序,只要用 UI 图形界面设置即可。
---------------------------------------------------
透过图形设置界面或自己撰写的程序,搭配「Orchestration (协调流程)」组件,IT 人员可任意调整企业流程及关卡的执行顺序。此外,还提供了可扩充的弹性,让流程的进行,可在整合进纯粹的运算之外,还整合进不同型式的商业逻辑项,例如:文件数据的转换、COM 组件应用程序…。
图 1 BizTalk 在制造业的应用
---------------------------------------------------
BizTalk 内部有提供「Functoid」的运算函数库,可帮助 IT 人员在自己编程处理数据、做数据「转换」及处理时,作为帮助,并提供数据运算的能力。
---------------------------------------------------
BizTalk 也是一种「商业规则」的 engine,可做「版本控制」,及设置主管各种审核的规则,且审核规则会存储在数据库里 (不用写程序)。当日后当规则改变或要更新时,不用改代码,只要改 rule 的配置文件即可。
---------------------------------------------------
BizTalk 可弹性地设计商业流程,其内建的 Log 机制,可用图形界面,去检视实际跑过的流程,也可处理应用程序方面的 Log。
---------------------------------------------------
BizTalk 和 MQ (Message Queue)、MSMQ 消息队列,沟通上很容易。此外,BizTalk 可把文件送到某个文件夹,即可自动产生相关的报表。
---------------------------------------------------
BizTalk 可与企业中既有的应用程序,如:某个 ASP.NET 网站系统或 WF 界接,而不影响这些应用程序既有的功能。
---------------------------------------------------
BizTalk 适合做:数据绕送、数据转换和处理。但若像是「审核」或 workflow 等特定功能的应用程序,仍要 IT 人员自己写程序做客制处理,BizTalk 本身不提供这类程序的开发功能。
---------------------------------------------------
BizTalk 有 Timeout 控制机制,可设置例如:一分钟没做完某个批次的审核,就自动抛出例外信息。
---------------------------------------------------
以台湾微软而言,BizTalk 在购买时,可买「顾问时数」,微软的技术人员,可提供客户开发相关应用程序时,所需要的示例代码。在台湾曾有某家企业,只靠一位女程序员,及微软提供的示例代码,就帮她的公司成功导入了 BizTalk 以及客制程序的开发。
---------------------------------------------------
BizTalk 目前最新的版本为 2009,但其核心仍与 2006 R2 相同。2009 只是加强了 Adapter (适配器) 和外部界接的功能,和一些管理的功能。
---------------------------------------------------
---------------------------------------------------
相关文章:
(1) BizTalk Server 2009 Documentation 1.0 (英文)
2009/04/20
http://www.microsoft.com/downloads/details.aspx?familyid=CAD8A5EB-1104-4A85-A3C1-31B2C8ACFE63&displaylang=en
(2) BizTalk Server 2006 Documentation (中文、英文)
2007/09/05
http://www.microsoft.com/downloads/details.aspx?FamilyID=3294ddaf-9f67-409f-a92d-2f6070dc0d1a&DisplayLang=en
2009/03/26
http://www.microsoft.com/downloads/details.aspx?familyid=4E6A9D40-DBFC-4474-826A-DDECA287E57D&displaylang=en
(3) Microsoft BizTalk Server 主页
http://www.microsoft.com/china/biztalk/default.mspx
(4) BizTalk Server 2006 R2 新特性概述
http://www.microsoft.com/china/biztalk/techinfo/2006r2features.mspx
(5) BizTalk Server Developer Center (英文、中文)
http://msdn.microsoft.com/en-us/biztalk/default.aspx
http://msdn.microsoft.com/zh-cn/biztalk/default.aspx
(6) Microsoft BizTalk Server Library (英文)
http://msdn.microsoft.com/en-us/library/bb905520.aspx
(7) Microsoft BizTalk Server 2009 Help (英文)
http://msdn.microsoft.com/en-us/library/aa548004.aspx
(8) Microsoft BizTalk Server TechCenter (英文)
http://technet.microsoft.com/zh-cn/biztalk/default(en-us).aspx
(9) BizTalk开发系列(八) BizTalk Server 常识整理
http://www.cnblogs.com/cbcye/archive/2008/03/29/1129103.html
(10) 地球人 - 博客园
http://www.cnblogs.com/cbcye/
(11) BizTalk Server Team Blog (msdn blog)
http://blogs.msdn.com/biztalk_server_team_blog/default.aspx
http://blogs.msdn.com/biztalk_server_team_blog/archive/2007/05/31/biztalk-server-2006-posters.aspx
(12) 西煞魄工厂 - 博客园
http://www.cnblogs.com/xuzhong/
(13) 彭靖灏的博客 (K2.net 大中华区技术总监)
http://michaelchpeng.spaces.live.com/blog/