Adapter(适配器)是Biztalk外部信息交互的接口。在前一章中我们已经简单的介绍了Biztalk的消息流转机制,如下图

201110311120474153

其中标有的Receive Port以及Send Port字样的模块中的adapter我们统称为Adapter。

在收取端,adapter负责从固定的收取位置读取消息头,并将消息原封不动的推送至管道。

在发送端,Adapter负责从管道中取得符合关联条件的消息,发送到目标环境。

关于Adapter的自定义开发。我会在后面的后面的章节中覆盖到。

 

下面是Port的介绍。

在每一个Receive Port中,都必须包含以下几个要素:

1. Receive Locations

2. inbound Maps(单双向port), outbound Maps(双向接口)

3. Tracking

如下图菜单:

image

Receive Location: 帮助用户制定的接受位置,接受方式,接受管道(后续介绍),并且可定义服务启用时间段(Schedule),服务窗口时间定义(Service Windows).

Inbound Maps: 用户可以使用Visual Studio 2005进行此类开发。将于后续介绍。

Tracking: 通过打开Tracking选项,对相应流程进行跟踪。

 

在每一个Send Port中,都必须包含以下几个要素:

1. 发送位置,发送方式,发送管道(后续介绍),

2. 失败后重新尝试次数设置,服务窗口时间定义(Service Windows)-- 只有静态发送端口有此选项。

3. Backup Transport

4. inbound Maps(单双向port), outbound Maps(双向接口)

5. Filters

6. Certificate

7. Tracking

如下图菜单:

image

 

(一)  Receive Port配置

我们以单向的接受端口作为例子,

 

1. 打开Biztalk管理员控制面板,找到相应的工程。选择Receive Ports,在空白处右单击。选择单向接受端口

image

2. 我们将看到

image

3. 填写Name后切换到Reveive Locations选项,点击新建。

image

4. 这里我们可以看到Type, Receive Handler, 以及接受管道选项。

5. 选择相应的接受种类。我们以File为例,点击Configure

image

6. 选定相应的文件接受目录,文件扩展名。

7. 在Authentication选项卡中填写当Host无法访问网络共享文件夹时需要制定的用户名密码。

8. 在Batching中填写相应的每次Batch处理的消息总数和最大Batch处理字符大小后点击确认。我们的Type就已经设置完成了。

9. 回到主选项卡中选取相应的管道。

10. 在schedule中设置开始结束时间,或者启动Service window。点击确认。我们的第一个简单的receive location就设置完成了。

 

(二) Send Port配置

同上,选择相应发送类型,点击Configure后进行简单配置,我这里就不浪费大家时间了。但必须要注意需要在SendPort的Filters中选择  BTS.ReceivePortName == ReceivePort1(前面定义的接受端口名)的条件,进行消息的接收端口订阅。这样消息才能在Messagebox中找到订阅的Send端口从而被推送。

 

到目前为止,我们的第一个就已经制作完成了。

 

(三) 启动服务

1. 在Receive Locations中右单击刚才新建的Receive Port后,选择Enable

2. 在Send Ports中右单击刚才新建的Send Port后,选择Start

 

测试:

1. 我们先制作如下XML,并保存在本地

<DateTime>
<Date>
2011-1-1
</Date>
<Time>
10:10:10
</Time>
</DateTime>

2. 将上述XML复制到Receive Port所绑定的文件夹中。

3. 稍等片刻,我们会看到上述XML文件消失了。

4. 转到与Send Port绑定文件夹

5. 我们可以看到该文件被Biztalk转发了。

 

总结:

当此XML文件被放置到Receive Port所绑定的文件夹中时,Biztalk将此文件中的信息转化为消息,发送至MessageBox。由于我们没有添加任何的中间处理过程,Send port从messagebox中直接获取到该消息后,进行转发。

 

从上述例子我们可以很明确的看到Biztalk的作用:如果我们把发送端与接受端2头都认为是不同的系统,即使我们是以文件的形式,biztalk还是可以将消息从一个系统转发到另外一个系统。这样完全避免了我们为多个系统分别开发不同数量,不同类型的数据接口麻烦。我们可以使用biztalk很快的去开发,管理此类问题。因此,biztalk完全可以成为企业级的数据总线。而无须传统的网状开发。