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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Edgex foundry(Ireland-2.0版本)- Security 模式启动过程分析security-bootstrapper[通俗易懂]

    Edgex foundry(Ireland-2.0版本)- Security 模式启动过程分析security-bootstrapper[通俗易懂]EdegxFoundry:运行再边缘侧开源的,厂商中立的,灵活可定制的,支持交互操作的软件平台。可与设备、传感器、执行器和其他物联网对象的物理设备进行交互。简单地说,EdgeX是一种边缘中间件平台,服务于信息系统和IOT设备的感知操作(有关edgex的更多介绍,可查看edgex的的官方文档Introduction-EdgeXFoundryDocumentation)。Edegx官方提供了基于docker,可快速启动dockercompose文件,让用户可以快速体验到edgex提…

    2022年7月20日
    26
  • hive的基本数据类型有几种_hive浮点型数据类型

    hive的基本数据类型有几种_hive浮点型数据类型hive的基本数据类型1.基本数据类型hive类型      说明      java类型    实例  1).tinyint    1byte有符号的整数  byte      20  2).smalint   2byte有符号的整数 short     20  3).int     4byte有符号的整数  int      …

    2022年9月16日
    2
  • 浙江小学python教材_PPT、H5、Python、大数据……浙江中小学新教材9月投用![通俗易懂]

    浙江小学python教材_PPT、H5、Python、大数据……浙江中小学新教材9月投用![通俗易懂]今年9月的新学期,浙江三到九年级信息技术课将替换新教材。消息一出,引起浙江学生家长的关注。其中最大的变化是,八年级将新增Python课程内容。新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法按照教材规划五六年级开始接触。浙江省教研室相关工作人员表示,目前根据现行的高中教材,对小学、初中的老教材进行了修订,新教材将于今年9月投入使用,最新的线上教师培训也刚刚结束。在最…

    2022年5月13日
    54
  • Python文件名后缀_python 获取文件名 不带后缀

    Python文件名后缀_python 获取文件名 不带后缀原博文2020-05-1510:00−-1.切割字符“`pythonls=”asdada.ad”print(ls[ls.rfind(‘.’)+1:])“`-2.os.path模块“`pythonimportos.pathdeffile_extension(path):return…01007相关推荐2019-09-2821:13−…

    2022年9月22日
    3
  • fcntl和ioctl_Liverpool fc

    fcntl和ioctl_Liverpool fc一、fcntlfcntl函数用于执行各种描述符控制操作;/*返回值:成功取决于cmd,失败返回-1;*定义:*/#includeintfcntl(intsockfd,intcmd,/*intarg*/);/*说明:*第三个参数可有可没有,根据需要给出;*/函数有下面5种功能:复制一个现有的描述符(cmd=F_DUPFD);获得/

    2025年6月22日
    2
  • 使用C#创建WebService实例

    使用C#创建WebService实例新增WebService专案更改服务程式名称重命名程式名称Service1.asmx修改为TestService.asmx此时下面的cs代表文件也会跟着修改,但可发现,代码中的类名并没有跟着变动修改类名称手动将类名称由Service1修改为TestService如果此时执行发布会发现还是会vb.net教程有问题,报错無法建立型別‘.Service1’修改服务绑定代码在TestService.asmx上右键选择打开方式,选择“Web服务编辑器”打开此时会看到服务所有设定,

    2022年7月21日
    12

发表回复

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

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