biztalk什么意思_aide教程网

biztalk什么意思_aide教程网BizTalk开发系列(二十六) 使用Web Service

大家好,又见面了,我是你们的朋友全栈君。

更多内容请查看:BizTalk动手实验系列目录

                      BizTalk 开发系列

  Web Service是在构建SOA平台中广泛使用的技术。在BizTalk开发过程中使用SOAP适配器接收和发送 Web Services 请求。业务流程可以发布为 Web Services 并使用外部 Web Services。由于Web Service是基于Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议)、WSDL等内容比较丰富。这里仅探讨在BizTalk中如何使用Web Service。

      如下图所示,我们构造了这样一个场景:数据库中存储Addressbook表。我们通过BizTalk将发布Web Service接收添加数据到数据库表中。如果在数据库操作成功的话则返回受影响的行数。如是失败的话则返回异常信息。

2008-11-9 1-15-09

  在设计流程过程中,需要添加异常捕获形状接收在数据库操作过程中产生的异常信息。将错误信息借助双向端口的Fault Port将异常信息返回给请求系统。注意在异常处理模块中结束流程,否则会产生错误:

biztalk什么意思_aide教程网
must receive before sending a message whose messagetype corresponds to a requestreponse operation on an implemented port

 

 

发布架构为Web Services

  BizTalk设计器通过使用BizTalk Web Services发布向导将流程或架构发布为Web Service. MSDN推荐仅将架构发布为Web Service。“如果您想要更详细的解释,那就是松散耦合! 这样做使您在更改业务流程时具有更大的自由性,无需中断调用方。”。 虽然不是很赞成松散耦合这个观点,因为通过比较两种方式发布出来的Web Servcie最终都是通过注入的方式调用全局缓存的流程类库。

  但是还是建议仅将架构发布为Web Service。因为如果仅将架构发布为Web Service的话生成的Web Service项目仅在需要使用的Schema.但如果将流程发布为Web Services的话可能一些其他的架构也会暴露在Web Services的项目中。比如上图所示的流程(Schema和流程在一个同项目文件中)中如果使用发布流程的话则在流程中使用的添加数据的架构也会暴露在Web Service中。这样是不太安全的因为数据库操作的架构包含存储过程名称,参数及类型之类的信息。

image               image

 [通过发布架构产生的Web Service]                           [通过发布流程产生的Web Service]

 当然直接选择发布流程的话就不需要设置方法和参数名等信息简化了发布的过程。选择哪种方式可以看实际情况而定。

 讨论了两种发布方式的区别下面提示Step by Step的方式发布架构为Web Service。

1.在Visual Studio开发环境的工具栏下找到BizTalk Web Service发布向导,或者可以在开始-程序-Microsoft BizTalk Server 2006目录下找到BizTalk Web Service发布向导。

image

2.在创建 Web Service 页面下选择发布架构为向导。发布流程的方式比较简单将在之后讨论。

image

3.在Web Service定义页面。可以分别对这些节点命名。当然还可以根据实际需要对其项目进行添加、删除、修改等操作。注意方法名称应该与Orchestration设计过程中使用的端口的操作名称一致。

image

4.输入目标命名空间,这个命名空间是在SOAP请求消息中使用的。所以可以不跟架构中使用的消息一致。

image

5.选择发布位置,这里的名称是虚拟目录的名称。如果有旧版本的相同名称的话需要选择覆盖安装。另外选择访问方式和为BizTalk程序创建接收位置。

image

6. 至此将架构发布成了Web Service.窗口中提示的路径是Web Service项目保存的路径。可以直接打开项目源码,(但最好不要做改动,如果不是很熟悉的话。)

image 

 同时可以在IIS里查看到新添加的虚拟目录

image

 

 

发布流程为Web Service

1.发布流程为Web Service的过程比较简单,接上面第2步开始选择发布流程为Web Service。

image

 

2. 建议在Visual Studio中使用工具菜单下的Web Services发布向导,这样这一步就可以直接定义到项目中的动态库。

image

3.选择需要发布的流程和端口。

image

4.后续的部署跟上面是一致的。可以从第4步开始设置。

 

 

BizTalk Application绑定相应的Web Service。

 这一过程比较简单,如果在发布向导的时候已经选择了为应用程序产生接口的话直接在应用程序配置窗口选择相应的接收位置即可。 

image 

 

 

BizTalk消费Web Service.

 在BizTalk的应用程序中引用Web Service的方法跟一般的.NET应用程序类似。

1.在BizTalk应用程序中添加Web引用

image

2.选择本地计算机上的Web服务,在列表中选择相应的服务。添加相应的名称之后可以在类型窗口查看到相应的端口类型和消息类型。

image

3.在流程中创建消息时选择对应的Web Message Types。创建端口时也同样使用已经存在的端口类型,即引用Web Services创建的端口类型。

 

image

4.项目部署之后,在配置端口时选择类型为SOAP,在配置页面输入Web Service路径。

image

  

 

Web Services的测试

  在.NET开发 Web Services的过程中常常会采用页面输入的方式对Web Service进行测试。但是BizTalk生成的Web Service项目已经在Web.Config配置文件中禁止HTTP GET和HTTP POST方法。因此需要通过使用XMLSpy或SoapUI等工具对Web Service进行测试。

  我们来测试本次Sample的场景,在SOAPUI中新建一个Project。在请求参数中将“?”更改为相应的数值。发送请求,则返回受影响的行数。测试结果跟预期的一致。

image

  另外,由于我们需要测试返回错误消息的情况因此在数据库中将名称字段设为主键。然后根据发送相同的请求参数返回错误信息。请注意,红线部分是在异常处理模块里通过字符串构造的方法添加的。

image

总结

 经过以上的探讨基本上涵盖了SOAP Adapter的基本应用。本Sample的代码可以已经上传可供下载:BTSSOAP[www.cbcye.com].zip

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107097.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea 2022 mac 激活码(JetBrains全家桶)[通俗易懂]

    (idea 2022 mac 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    466
  • tensorflow tensor转numpy

    tensorflow tensor转numpysess=tf.Session()withsess.as_default():change=tf.expand_dims(tf.reshape(batch_rodrigues((np.array(gt_data[‘pose_0’]).flatten()).reshape(-1,3).astype(np.float32)),(24,3,3)),0)gt_data[‘po.

    2022年10月19日
    1
  • 用Python做一个“以图搜番“的应用程序,再也不用愁动漫图片的出处了!

    用Python做一个“以图搜番“的应用程序,再也不用愁动漫图片的出处了!文章目录前言PyQt5界面设计使用QtDesigner绘制界面视频部件插入小技巧解码器下载功能实现trace.moeAPI介绍与视频使用Nuitka打包成exe文件前言喜欢看动漫的朋友们大概都能体会到一个难受的事情,就是在论坛或者群聊里面看到一张动漫截图,很想知道它的出处,但百度搜了一圈却也没有一个可靠结果,就很郁闷。今天就来带大家用Python做一个简单的“以图搜番”小应用。应用本身的实现不是很难的事情,其实就是调用别人的API接口来实现,主要目的还是通过这个案例来学习以下内容:学习如何用Py

    2022年10月9日
    3
  • linux smartctl 命令,使用smartctl命令检查磁盘

    linux smartctl 命令,使用smartctl命令检查磁盘使用smartctl命令检查磁盘在TS过程中会碰到很多磁盘异常出现影响系统数据或者生产数据的情况,但是有时候无法判断磁盘出现问题是由于磁盘物理损坏还是磁盘SATA口接触不良导致,这个时候smartctl命令就可以很容易判断出磁盘是否存在物理损坏问题,并且及时作出预警。使用smartctl进行SMART测试所有现代硬盘都可通过SMART属性监视其当前状态。这些值提供有关硬盘各种参数的信息,并可提供有…

    2022年6月16日
    42
  • quartus ii运行错误_安装quartus时弹出错误

    quartus ii运行错误_安装quartus时弹出错误使用Quartus进行数字电路设计时,遇到了下面的编译错误:Info:*******************************************************************Info:RunningQuartusII64-BitAnalysis&SynthesisInfo:Version11.0Build1570…

    2022年10月15日
    3
  • 服务器版dll修复工具,dll修复工具「建议收藏」

    服务器版dll修复工具,dll修复工具「建议收藏」winmm.dll是Windows多媒体相关应用程序接口,用于低档的音频和游戏手柄,缺少它可能造成部分软件无声音。当你的电脑提示“丢失winmm.dll”或者“没有找到winmm.dll”等类似错误信息。如果sqlite3.dll系统文件丢失、损坏,自行寻找选择适合系统的DLL系统文件,不但麻烦,还得冒着系统异常的风险。无主之地、荣誉勋章等游戏所需的physxcudart_20.Dll下载,解压后…

    2022年6月1日
    181

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号