BizTalk开发系列(一) "Hello World"

      学习开发语言的时候很喜欢输出“Hello World”作为第一个程序。今天我们也在BizTalk 上创建一个简单的 "Hello World" 程序。

       BizTalk的时候有很多文章都是教你如何使用Visual Studio开发BizTalk 的第一个应用程序的。今天我们来换一种思路开发基于BizTalk的"Hello World"应用程序。也就是直接通过BizTalk 管理控制台创建应用程序。

BizTalk Server 管理控制台

       安装和配置BizTalk之后就可以通过BizTalk控制台管理BizTalk Server 及应用程序。其中有几个概念先了解一下:

  • BizTalk Group:  BizTalk Server 的逻辑概念,可以将多台BizTalk Server加入一个Group进行管理。
  • Applications: 开发BizTalk应用程序之后它在此节点下。
  • Platform Setting :BizTalk运行环境的配置比如BizTalk实例(BizTalk运行时的进程),BizTalk适配器等的配置。

image

 

查看控制台相关概念

 

       看了这些概念可能还是云里雾里的。不过没关系BizTalk不是那么好理解,特别是刚开始学习的时候。因为它的开发理念和程序语言有点不太一样。它是面向消息的开发理念。之前跟一些学习BizTalk新人聊的时候。常常会听到“我学习BizTalk一个星期了,还不知道它干嘛用。”。 而后来跟一位BizTalk MVP聊的时候我提到了这一点。他也很搞笑的说“我当时搞了三个月了还不知道是干嘛用的”。所以不要急于求成。

 

开始开发 

      1. 首先打开BizTalk 服务器管理控制台,在Applications节点右击选择新建->应用程序.在弹出的对话框的名字栏里填上应用程序名称:Hello Word

      2. OK,应和程序Hello World已经建了,只不过它什么都干了了。我们会在Hello World节点下看到很多节点。每个应和程序都会有这么多的节点。这些节点都跟BizTalk的架构的关的,暂时先不用了解那么细致。

clip_image003

    3. BizTalk像是一个盒子用于处理消息。因为就需要有进入的消息和出来的消息。那样我们首先创建一个接收的端口用于接收消息。

    在Receive Port 节点右键->新建->单一方向端口,在常规选项卡里写上端口名称:ReceiveFiles。

clip_image004

 

     4. 端口是BizTalk的逻辑概念,真正接收的地方是在 "Receive Location"节点下配置的。在Receive Locations节点下右键->新建->单一方向接收地址.在"选择接收端口"的对话框中选择刚才新建的端口"ReceiveFiles"。

     5. 在接收位置的配置页,填上接收位置的名称。在类型中选择File, 接收管道选择PassThruReceive。

     6. 点击类型的Config按钮,弹出File的配置对话框配置接收位置,以及相应的文件名称。

clip_image008

     7. 创建好了接收端口,接下来我们来创建发送端口。发送端口直接指定发送的物理位置和发送方式。多个发送端口使用Send Group进行管理。

     右击Send Ports 节点->新建->Static One-Way Send Port

clip_image009

     8. 在发送端口配置菜单中参照下图分别配置:发送端口名称,类型,相应类型的发送位置。

clip_image010

 

     9.  OK,现在端口已经全部创建完成了。现在是万事俱备只欠东风。现在你会不会有这样一个问题:怎么让接收到的消息由 发送端口发送出去?也许你会认为它们同在一个应用程序下面直接就可以实现了。但同一个应用程序下面可以创建许许多多的发送的接收端口那BizTalk怎么去判断消息从哪接收又发送到哪呢?。

      呵呵,带着问题,我们来看看可能怎么将接收端口和发送端口关联起来。再次打开发送端口配置对话框,我们会注意到左边的菜单项中有一个叫“Filter”(过滤)。我们就用这个来实现发送端口与接收端口的关联。在条件表达式中设置:   BTS.ReceivePortName == ReceiveFiles

clip_image011

     10.  启动BizTalk 应用程序验证程序

      右击Hello World应用程序选择Start。打开刚才配置的接收文件夹。将测试XML文件 QuickLearn.CN.Msg.XML拷贝到接收文件夹In中。

clip_image012

在Out 文件夹中查看输出

clip_image013

     

        我们的第一个BizTalk 程序已经成功运行了,感觉怎么样。是不是很神奇。虽然很多理论性的东西没有讲到。但是对于初学者来讲往往兴趣更重要。另外这个程序还可以改为用于搬运文件,或者不需要走流程的业务中。它的专业术语叫“直通流程”。我是在学习BizTalk三个月之后才知道这个东西的。记住这个Sample,在以后的BizTalk学习过程中慢慢理解这个Sample以及BizTalk的架构思想。

posted on 2008-09-10 08:42 Gary Zhang 阅读(3989) 评论(51) 编辑 收藏

评论

#1楼  回复 引用   

误导人家
BTS不走流程有什么意义???
最简单的也要在流程中实现!!!
2008-09-11 14:00 | TEST123[未注册用户]

#2楼[楼主]  回复 引用 查看   

@TEST123
主要是为培养兴趣,至于需不需要在流程中实现得看具体的需求。
2008-10-05 01:38 | Gary Zhang      

#3楼  回复 引用 查看   

博主加油
2008-11-03 12:47 | Henllyee Cui      

#4楼  回复 引用   

顶博主,期待精彩博文
2008-11-06 15:13 | sg[未注册用户]

#5楼  回复 引用 查看   

6. 点击类型的Config按钮,弹出File的配置对话框配置接收位置,以及相应的文件名称。
=================出错======================
Could not store transport type data for Receive Location 'ReceiveFileLocation' to config store. Primary SSO Server 'XXXXXX' failed. Could not Contact the SSO server 'XXXXXX'. Check that SSO is configured and that the SSO service is running on that server.(Microsoft.BizTalk.ExplorerOM)

1. 在windows services 中没有看见 SSO service(Where is it?)
2. BizTalk Server 2006 Configuration中所有的feature前面都是对号(已经配置好了)
3. 我的平台 Vista X86 Business SP1 + Sql Server 2005 SP2 + VSTS 2008

向楼主请教啦,也可以联系我. MSN:zhangwg370@hotmail.com
2008-11-28 17:18 | 笨笨车      

#6楼[楼主]  回复 引用 查看   

@笨笨车
1. BizTalk 的SSO Service在Windows Service 的名称是:Enterprise Single Sign-On Service
2. 如果 Configuration里的都配置好的话就请检查一下SSO Service是否已经启动了。如果不能启动检查Eventlog里是否有相应的记录。
3. BizTalk Server 2006目前还不支持VSTS 2008.
2008-11-28 17:59 | Gary Zhang      

#7楼  回复 引用 查看   

多谢楼主的指导, Enterprise Single Sign-On Service 已经可以正常启动了。第一个例子已经可以顺利运行啦!心情 Very High.我会继续关注楼主的BizTalk系列专题的。
2008-11-29 23:17 | 笨笨车      

#8楼[楼主]  回复 引用 查看   

@笨笨车
恭喜你哈,也谢谢你的关注。以后多多交流。
2008-11-30 00:05 | Gary Zhang      

#9楼  回复 引用   

嘿嘿,准备跟这个系列学习了。
不过第一个程序就出了问题,我点Application->Start后,放入一个Xml到In文件夹里测试,结果没任何变化。然后检查了一下,发现Receive Location没有自动启动,然后我手动启动了一下,In和Out文件夹还是没有任何变化。
我后来又做了Helloworld2,还是同样的问题,文件没有传到Out里。中间过程完全按博主的步骤做的,都没有问题,所以想请教一下我这个到底是什么原因?
刚才修复了一遍Biztalk问题依旧。
2009-03-05 17:33 | abinchen

#10楼[楼主]  回复 引用 查看   

@abinchen
你看一下你放文件的目录及文件名是否符合Receive Location中配置的路径和文件名规则
2009-03-05 18:44 | Gary Zhang      

#11楼  回复 引用   

@Gary Zhang
符合的。配置就是默认的*.xml,放的文件也是.xml。。。
2009-03-06 09:53 | abinchen

#12楼[楼主]  回复 引用 查看   

@abinchen
查看一下日志,看接收端口关闭的原因,比如说权限,路径 等
2009-03-06 10:05 | Gary Zhang      

#13楼  回复 引用   

@Gary Zhang
谢谢,问题解决了。是读写权限不够。
2009-03-06 13:06 | abinchen

#14楼  回复 引用   

博主,我初学者,想问个问题,为什么发送端口配置的url却是实际接收文件的地方呢?
2009-04-23 15:51 | johney.qiang[未注册用户]

#15楼[楼主]  回复 引用 查看   

@johney.qiang
不是很明白你的意思,发送端口配置的位置应该是存放文件的地方而不是接收文件的地方
2009-04-23 15:53 | Gary Zhang      

#16楼  回复 引用   

@Gary Zhang
哦。博主,明白了!谢谢!~
2009-04-24 09:31 | johney.qiang[未注册用户]

#17楼  回复 引用 查看   

呵呵!我要学习Biztalk!
不过我机器当前配置不够,现在微软开发工具的配置要求越来越高,真不知道改怎么办才好!先看资料再说!
感觉挺不错的。
2009-06-04 17:08 | 清凉一夏      

#18楼  回复 引用 查看   

QuickLearn.CN.Msg.XML文件应该怎么写啊,有什么规则吗?
2009-08-10 17:27 | enjoyeclipse      

#19楼[楼主]  回复 引用 查看   

@enjoyeclipse
不需要,任意符合规范的XML都可以.
2009-08-10 23:01 | Gary Zhang      

#20楼  回复 引用 查看   

楼主,哪里有biztalk2006 下载啊?想学习一下!谢谢
2009-11-30 15:56 | shao      

#21楼[楼主]  回复 引用 查看   

@shao
现在微软官方体验版已经改为BizTalk 2009的了,BizTalk 2006/R2的话在Tcehnet或MSDN订阅上可以下载到。
BizTalk 2009与2006对机器性能要求差不多,建议从BizTalk 2009开始使用。
2009-12-01 11:33 | Gary Zhang      

#22楼  回复 引用 查看   

感谢您的回复!

能不能给个下载的url啊?我也在【Tcehnet或MSDN】上找了!但没找到!

希望给予帮助。

另外,我想问一下。我查到的Biztalk的配置原则一般如下:

Biztalk 2006 server/R2 需要的配置:
1-Windows2003 server
2-Office2003
3-Vs2005
4-sql2005

Biztalk 2009 server 需要的配置:
1-windos2008 server
2-Office 2007
3-Vs2008
4-sql2008

我可以用如下配置安装Biztalk2009server吗?
1-Windows2003 server
2-Office2003
3-Vs2005
4-sql2005

以上
2009-12-02 10:13 | shao      

#23楼[楼主]  回复 引用 查看   

2009试用版的URL:http://www.microsoft.com/biztalk/en/us/trial-software.aspx

BizTalk 2009的配置建议使用标准配置,以减少学习过程中不必要的麻烦。另外BizTalk 2009支持Win 2003, SQL 2005。但VS2005不支持,只支持VS2008
2009-12-02 10:23 | Gary Zhang      

#24楼  回复 引用 查看   

感谢回复!

我正在配biztalk2009 server。
在配到vs2008时,有个疑问。我装的是Vs2008 team suite。是不是它已经包含vs2008 sp1了。不用再单独安装vs2008 sp1了吧!

希望尽快回复!
谢谢!
2009-12-02 15:02 | shao      

#25楼  回复 引用 查看   

BizTalk2009Eval_Accelerators_CN.exe 99.5 MB
BizTalk2009Eval_HIS_EN.exe 190.3 MB
BizTalk2009Eval_HostSystems_EN.exe 190.3 MB
BizTalk2009Eval_LOBAdapters_EN.exe 14.8 MB
BizTalk2009Eval_Server_CN.exe 433.6 MB

安装顺序?都必须装吗?

2009-12-02 15:35 | shao      

#26楼[楼主]  回复 引用 查看   

@shao
需另外装sp1
2009-12-02 15:39 | Gary Zhang      

#27楼[楼主]  回复 引用 查看   

@shao
安装步骤及组件参考:http://www.cnblogs.com/cbcye/archive/2008/09/12/1289578.html
2009-12-02 15:39 | Gary Zhang      

#28楼  回复 引用 查看   

你好!我的biztalk2009 是分开的,不是iso。自己选则安装的话,安装顺序如何?

BizTalk2009Eval_Accelerators_CN.exe 99.5 MB
BizTalk2009Eval_HIS_EN.exe 190.3 MB
BizTalk2009Eval_HostSystems_EN.exe 190.3 MB
BizTalk2009Eval_LOBAdapters_EN.exe 14.8 MB
BizTalk2009Eval_Server_CN.exe 433.6 MB

请回复!谢谢!
2009-12-03 10:54 | shao      

#29楼  回复 引用 查看   

我按装了 BizTalk2009Eval_Server_CN.exe 433.6 MB 文件。
但安装过程中报了错误。
详细如下:

1: command line option syntax error.Type command/? for help.

2:无法安装以下平台组建,需要手动安装这些组建,然后才能继续安装:
Microsoft ADO MD.Net 10.0:未能打开这个安装组建包。请验证软件包是否存在,是否可以访问;或者与应用程序供应商联系,验证这是否是有效的windows Installer 软件包。
有关详细信息,请检查日志。

这两个错误是什么意思啊?

请回复!谢谢!
2009-12-03 14:23 | shao      

#30楼[楼主]  回复 引用 查看   

@shao
第一个问题没遇到过,第二个问题手动打开cab包,安装该组件。
2009-12-03 22:28 | Gary Zhang      

#31楼  回复 引用 查看   

感谢回复!

Biztalk 2009 安装过程中,再安装sql2005 后有一步是禁用Shared Memory 协议。但我发现在禁用前,除了Shared Memory 协议其他协议都已禁用。如果Shared Memory 协议也被禁用,那sql server 服务还能起来吗?我测试的结果是起不来,所以我禁用Shared Memory 后,把Tcp/ip 协议和Names Pipes启用了。sql server 服务才起来。不知道
微软的Biztalk 2009 安装升级手册是不是有问题,还是什么原因?

我再试一下手动打开cab包!我用的cab包是:BtsRedistW2k3EN32.cab
这个不分 中英文吧?我的其他软件都为中文。

我要是使用windows 2008 server 和sql server 2008 我下载哪个版本比较好?

谢谢!

2009-12-04 08:35 | shao      

#32楼[楼主]  回复 引用 查看   

@shao
你好像把BizTalk 安装过程给搞复杂了。按以下顺序安装:
1.Windows Server 2008 Enterprise
2.SQL Server 2008 Enterprise
3.Visual Studio 2008 Team Suit + SP1
4.BtsRedistVistaEN32.cab(名字可能有点不对,你查一下在Vista中应用的版本)
5.BizTalk Server 2009 Enterprise

以上是微软企业环境推荐的搭配,软件你自己想点办法搞到吧。
2009-12-04 09:56 | Gary Zhang      

#33楼  回复 引用 查看   

帮忙找一个vistaEn32.cab吧!我找了半天也没找到啊?

谢谢!
2009-12-04 14:29 | shao      

#34楼  回复 引用 查看   

按照微软BST2009 安装手册我下了个BTSRedistW2K8EN32.cab。不知道行不行!
2009-12-04 15:01 | shao      

#35楼  回复 引用 查看   

成功了! 就是这cab包搞的!

BTSRedistW2K8EN32.cab

谢谢!


:)
2009-12-07 11:24 | shao      

#36楼  回复 引用 查看   

Biztalk 配置好了!但我不知道怎么学习它。
我按照biztalk help 做了一个例子。成功了!
但我还是搞不懂该怎么学习他!
希望给点建议!
谢谢!
2009-12-07 11:26 | shao      

#37楼  回复 引用 查看   

你好!

我按照Biztalk2009 帮助例程测试!

1.从 Windows SharePoint Services 管理路径中排除根目录
单击“开始”,依次指向“所有程序”、“管理工具”,然后单击“SharePoint 3.0 管理中心”。

2.单击“应用程序管理”选项卡。

3.在“应用程序管理”页的“SharePoint Web 应用程序管理”部分中,单击“定义管理路径”。

4.在“定义管理路径”页上,从“Web 应用程序”下拉列表中选择默认的网站。

5.在“包含的路径”部分中,选择“(根)”,然后单击“删除所选路径”。

我选的是:http://bst2009:8000/

结果按照步骤给删除了!

请问如何恢复啊?

谢谢回复!
2009-12-07 15:24 | shao      

#38楼  回复 引用 查看   

你好!
我在做Biztalk2009 教程2时遇到这样一个问题。具体如下:
1.操作如下:


2.系统提示如下:


希望给予帮助!
谢谢!
2009-12-07 16:09 | shao      

#39楼  回复 引用 查看   

OK! 已解决!

应用Web service 后,不用改名。我给改名了!

原为localhost。
2009-12-11 16:45 | shao      

#40楼  回复 引用 查看   

尊敬的前辈/老师:
您好,我刚刚开始学习BizTalk,跟着您做好第一个实验,我有如下总结,希望您百忙中,帮我看看,指正指正,谢谢您。我希望在这条路上不要走太多的弯路,谢谢前辈的指引。
BizTalk 开发系列(一)

学习中遇到的问题:
1、One-way Receive Port与RequestResponse Receive Port有什么不同的?

2. 我想知道这个Receive Pipeline “PassThruReceive”是什么含义?

3. 我想知道Send Pipeline "PassThruTransmit"是什么含义?

4. 我想知道
Static One-way Send Port
Static Solicit-Response Send Port
Dynamic One-way Send Port
Dynamic Solicit-Response Send Port
分别是什么含义?作用是什么?

学习好了这一部分之后,我觉得,对于这个程序而言,有没有Orchestration是没有多重要的,
职责:
Receive Port的任务就是每过一段时间就到Receive Location的位置查找一下有没有*.xml的文件,如果有的话就发布到BizTalk Server上面。
Send Port的职责就是每过一段时间就到BizTalk Server上面根据Filter查看有没有满足条件的Message,如果有就会被这个Port订阅,然后处理发送到指定的位置。
2010-03-10 10:39 | 香槟      

#41楼[楼主]  回复 引用 查看   

@香槟
问题真不少。。呵呵
1、One-way Receive Port与RequestResponse Receive Port有什么不同的?
One-way Receive Port 就像File Adapter,不需要响应的。
RequestResponse Receive Port 就像SOAP Adapter,请求之后需要响应以接收返回的消息的。

2. 我想知道这个Receive Pipeline “PassThruReceive”是什么含义?
这个意思就是不需要经过Pipeline里面的四个阶段。也就是在Pipeline里面就不做处理直接提交给BizTalk Server就可以了。

3. 我想知道Send Pipeline "PassThruTransmit"是什么含义?
这个意思跟第2点是类似的。发送的时候不在Pipeline里任何处理。消息在BizTalk Server里面是什么样子的就输出什么样子的。

5.Static One-way Send Port
就是在Orchestration里面直接指定单向发送端口的配置信息。比如是文件适配器、地址之类的。

6.Static Solicit-Response Send Port
就是在Orchestration里面直接指定请求-发送端口的配置信息。

7. Dynamic One-way Send Port
这个是指该端口的配置信息不是固定的,可以通过设定消息的上下文来指定消息是通过文件输出还是输出到数据库里。
8.Dynamic Solicit-Response Send Port
这个也是上面那个意思。只不过上面那个是单向的端口。这是请求-响应的端口。
2010-03-10 13:22 | Gary Zhang      

#42楼  回复 引用 查看   

^_^ 谢谢前辈,我在学习中... ...
2010-03-10 14:09 | 香槟      

#43楼  回复 引用 查看   

感谢楼主,国内这方面的资料太少了,支持!!!
2010-08-15 18:15 | xixidev      

#44楼  回复 引用 查看   

BizTalk2009Eval_Accelerators_CN.exe
BizTalk2009Eval_HIS_EN.exe
BizTalk2009Eval_HostSystems_EN.exe
BizTalk2009Eval_LOBAdapters_EN.exe
BizTalk2009Eval_Server_CN.exe

楼主2009是不是都要安装这些呢?/我现在已经装了SQL SERVER 2005
和VS 2008,就差biztalk 2009 了!!请楼主赐教一下!感谢!
2010-11-24 17:55 | 七匹狼888      

#45楼[楼主]  回复 引用 查看   

@七匹狼888
只要装BizTalk Server 就可以了,其他根据需要装。
2010-11-24 21:47 | Gary Zhang      

#46楼  回复 引用 查看   

@Gary Zhang
感谢楼主,能不能具体说其它几个安装包是做什么用的???还有就是我看文档安装的时候让禁用那个Shared Memory 协议,要不让影响性能,如果影响不大,我可不可以不禁用?谢谢!!
2010-11-25 10:16 | 七匹狼888      

#47楼[楼主]  回复 引用 查看   

@七匹狼888
一般按文档来,但如果你非常精通这个的话也可以根据自己的经验来调整。但是比如性能影响多少这个其实是需要做实验来完成的。所以你要是有兴趣可以自己做一下。
2010-11-25 11:03 | Gary Zhang      

#48楼  回复 引用 查看   

感谢楼主无私的分享。。。。
太感谢了。


希望能把这个系列坚持写下去
2011-01-07 10:36 | 酱板猪      

#49楼  回复 引用 查看   

顶!
2011-05-03 16:28 | 菩提树下的杨过      

#50楼  回复 引用 查看   

楼主,请问您那儿代码的biztalk的demo吗,我刚做了一个可是在部署是说那个密钥文件拒绝访问,怎么办,希望楼主能给个教程。
2011-10-08 13:50 | andyliuxiaobo      

#51楼[楼主]  回复 引用 查看   

@andyliuxiaobo
如果你是用VS来做的参照一下这篇文章:http://www.cnblogs.com/cbcye/archive/2008/09/24/1297562.html
2011-10-08 17:11 | Gary Zhang      

导航

公告


本Blog所有内容,若无特殊说明,均为原创。如需转载,请注明作者和出处,且保证内容完整!如有其他用途,请联系作者: cbcye@live.com













昵称:Gary Zhang
园龄:4年1个月
粉丝:63
关注:2

我的标签

随笔分类(89)

随笔档案(117)

BizTalk资源

IBM Learning Resource

积分与排名

  • 积分 - 128953
  • 排名 - 773

最新评论

阅读排行榜