例,其中也包含两个业务流程 P 和 Q。Machine C 和 Machine A 一样,拥有两个主机实例,但是这两个实例都没有包含任何业务流程。相反的,每个实例包含了一个发送管道和发送适配器。最后,Machine D 拥有 MessageBox 数据库,供这个配置中的所有主机实例使用。
这个示例展示了利用主机的多种方法。例如,由于 Machine A 和 B 都拥有业务流程 P 和 Q,所以 BizTalk Server 2006 可以自动地根据每台机器的可用性和当前负荷,自动地平衡分配对这两个业务流程的请求。这样可以扩展 BizTalk 应用程序来应对大规模进程。您也会注意到,Machine C 拥有两种不同的方法来处理传出消息。一种方法是依靠标准 BizTalk Server 2006 适配器,例如 HTTP 适配器;另一种则是利用自定义适配器来与某个特定的系统进行通信。像这样将所有的输出处理集中到一台机器上在有些情况下是很有用的。而且因为每个主机实例相互间是独立的(它们是不同的进程),所以在单独的实例中运行不完全信任的代码会更安全一些,例如新的自定义适配器。另外需要指出的是,虽然这个示例仅包含了一个 MessageBox 数据库实例,但实际上可以对数据库进行复制或群集,避免造成单一故障点。
BizTalk Server 2006 中引入的 BizTalk 应用程序的抽象概念并不是天生与主机相关联的。对于一个简单的 BizTalk 应用程序,它的所有的组件均可以包含在一个主机中,并安装在同一台机器上。但是如上图所示,在更为复杂的情况下,组成应用程序的各种项目(业务流程、适配器、管道等)可能跨越多台机器的多个主机。因此,将这些项目映射到实际机器的过程并非取决于 BizTalk 应用程序的概念。
5 并发支持
为了提高效率,BizTalk基于多线程方式进行运作,并且线程数量可以进行配置。多个用户的访问请求会同时得到处理。
BizTalk将所有消息都存储到消息数据库后再进行进一步处理。这种异步处理方式,就算是在并发量大的时候也很少会发生资源争用、死锁的情况,而且可靠性很高。
6 案例
6.1 佛山信息交换平台
6.1.1 信息交换平台体系架构
信息交换平台结构如下图:
税局系统工商系统其它单位系统建设局系统外经贸系统业务系统服务接口信息交换平台数据传输管理流程整合引擎数据转换数据格式定义管理数据映射数据转换系统日志数据映射系统监测数据传输管理差错处理业务系统服务接口窗口管理系统中心监管系统通知服务 基于微软BizTalk Server的信息交换平台就是一个业务数据XML总线,允许各个不同的单位业务系统以不同的接口插进来,进行数据路由与转换。
信息交换平台有两大功能:
在中心管理系统与职能部门系统之间进行相同的数据传递和状态传递。例如,工商局的窗口收件人员在窗口管理系统中输入的部分收件信息如用户名、收件时间、收件编号等数据可以由中心管理系统通过信息交换平台自动进入工商局的工商管理系统中。
实现跨部门的业务流程整合。通过信息交换平台,可以实现不同部门之间的并联审批、串联审批或混联审批。信息交换平台提供了强大的业务整合引擎,流程能够灵活的创建、修改和自定义。
基于消息传递的松耦合方法使中心管理系统和不同单位的业务系统之间无需相互调用,只是通过暴露各自的业务服务接口来实现。信息交换平台屏蔽了这些业务服务接口的不同而带来的差异性,在单位的业务系统发生改变或者增加新的单位的业务系统时,在信息交换平台上修改接入的方式或者增加新的接入方式,就可以达到系统调用的改变。
信息交换平台具有以下日志和监测功能: 系统日志
记录系统数据传输事件和流程整合事件以备分析和跟踪使用。 系统监测
对整个信息交换平台进行监测以确保各项服务的运行,将异常情况(如服务终止,传输失败)等传给系统日志模块以便差错处理模块进行差错处理。
差错处理
根据系统日志记录的异常情况(由系统监测模块负责采集),通过预定义的处理途径分别进行,如重启服务,重传数据,告警等。
6.1.2 消息传递服务
消息传递服务包括了以下功能和服务: ? ? ? ?
数据管理。 传输服务和管理。 路由服务。 安全管理。
6.1.2.1 数据管理:数据的定义,映射以及转换
消息包括了需要传递的业务数据,控制信息和状态信息。
数据格式(Schema)定义管理
数据格式定义管理模块是实现数据松耦合,保证业务系统的独立性的重要环节。它定义了各种业务数据的表现,包括命名,数据类型,检查规则等等。业务系统之间对于同一个业务对象的定义可能存在差异,在这些需要交换数据的系统之间传递数据需要消除这种差异性,以保证数据可以被系统正确理解。数据定义层就用于解决业务数据格式的确定以及在转换不同的数据解释。对于行政服务中心软件系统来说,其需要处理的数据内部来说是一致的,各类业务系统以及未来新增的业务系统对其数据的定义的差异在经过数据定义层后消失,这将为系统的发展以及各类业务规则,业务处理在整个系统之间的统一应用带来极大的方便。
数据映射
数据映射模块将业务系统调用传来的数据包映射成为标准的使用XML标注的数据格式。
数据转换
多个软件集成经常要求大量的不同的数据格式转换,包括XML和各种自定义格式。编写转换程序,校验程序
和管理这些多对多的关系的程序的工作量非常大。各个行业都已有或正在制定自己的数据交换标准,各业务系统间的数据格式将非常负责,而且随着业务的变化,系统的升级,数据格式很难做统一。通过数据转换模块,提供完善的各种数据格式支持,包括XML、EDI、文本与自定义格式。用户完全可以通过业务总线相关的图形界面工具,定义数据的格式以及数据转换机制。数据转换模块负责在这些参数定义之间翻译数据,以保证各个系统可以以自己理解的方式接受到数据。
数据格式的定义、映射和转换都可以通过微软产品已经带有的图形化工具进行,如下图:
6.1.2.2 传输管理:消息的多种协议传输
多种协议的传输手段,包括HTTP/HTTPS,FTP,File,SMTP等,对于数据异地传输的安全性保证也在这一模块中实现,使用标准PKI体系实现数据的加密传输。传输协议主要采用TCP/IP标准协议,包括HTTP(SSL)、FTP、SMTP、文件传输、SOAP、DCOM、Socket端口直接传送、MSMQ,以及TUXEDO等中间件之间的专用协议调用。
基于业务总线构成的接口系统,同时支持TCP/IP上的各种协议,使业务系统通过业务总线通信服务器与各种其他外部和内部的系统进行联接,而无需修改业务系统本身。业务系统中各业务模块可以灵活通过业务总线,在应用系统间交换数据。
规划局工商局统计局httpSMTPSOAP数据总线中心管理子模块窗口子模块业务整合引擎消息通知子模块统一消息数据中心平台
信息交换平台支持各种通讯协议的介入
6.1.2.3 消息路由:保证消息的正确到达
基于规则的路由使得可以向不同的部门按照特定值发放文件,这一智能功能减少了手工干预,使得操作变得更为快捷和正确。
文件必须能够可靠的进行投递,BizTalk Server 2000 可以确保这一点。一个辅助的传输协议可以在第一次传送失败的情况下进行最大限度的尝试。如果再次尝试仍然失败,文档将被送入队列之中等待手工处理。
6.1.2.4 安全管理:保证数据传输的安全性
把XML数据通过TCP/IP来发送有造成安全性的危险。因为XML文档是一个纯文本的流,这使得任何人在消息的传送过程中有可能读取这个消息。业务数据总线平台提供了严密的保护功能,通过S/MIME或PKCS安全层的方法来保证XML文档的安全性。
6.1.3 业务整合引擎
业务整合引擎是行政服务中心软件系统的重要构成部分。它使不同部门的应用系统集成变成可能。由于业务整合的高级需求,业务整合引擎提供了以下特性:
6.1.3.1 事务的支持和管理
业务整合引擎必须支持事务。事务具有四大特性:原子性,一致性,隔离性和持久性。业务整合引擎保证当事务的某一部分失败后,整个事务都滚回原来的状态。目前,业务整合引擎支持整个业务过程都作为一个事务或