在业务流程中使用 SOAP 适配器.docx

上传人:牧羊曲112 文档编号:5087329 上传时间:2023-06-03 格式:DOCX 页数:14 大小:247.01KB
返回 下载 相关 举报
在业务流程中使用 SOAP 适配器.docx_第1页
第1页 / 共14页
在业务流程中使用 SOAP 适配器.docx_第2页
第2页 / 共14页
在业务流程中使用 SOAP 适配器.docx_第3页
第3页 / 共14页
在业务流程中使用 SOAP 适配器.docx_第4页
第4页 / 共14页
在业务流程中使用 SOAP 适配器.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《在业务流程中使用 SOAP 适配器.docx》由会员分享,可在线阅读,更多相关《在业务流程中使用 SOAP 适配器.docx(14页珍藏版)》请在三一办公上搜索。

1、在业务流程中使用SOAP适配器介绍BizTalk Server 2006对目前Web服务技术的支持。您将学会如何使用现已推出的SOAP和 Web服务增强(WSE)适配器,并对即将推出的BizTalk® Server 2006 R2版本中 随附的 Windows® Communication Foundation (WCF)适配器有所了解。目录Web服务适配器使用SOAP适配器SOAP传输属性在业务流程中使用SOAP适配器WSE 2.0适配器WCF适配器总结本月我将带您进入令人兴奋的BizTalk Server 2006世界,并向您介绍BizTalk Ser ver 2006对目

2、前Web服务技术的支持。您将学会如何使用现已推出的SOAP和Web 服务增强(WSE)适配器,并对即将推出的BizTalk Server 2006 R2版本中随附的Wi ndows Communication Foundation (WCF)适配器有所了解。BizTalk Server 2006的构建基于一个灵活的消息传送子系统,该系统可改善异类应用 程序之间联系松散的消息传送交互。消息传送层可提供许多集成的益处,如消息路由、架构 变换和格式转换。消息传送层的核心是一个被称为MessageBox的SQL Server数据 库。由消息传送层处理的所有消息都要经过MessageBox,以进行路由选

3、择、跟踪和错误的处理。MessageBox的运行原则是“不在后台保留任何消息”,这一功能对于可靠性至上来说是非常关键的。但公平地讲,如果对性能要求更为重要,使用该功能也许会适得其反。通过在MessageBox中定义消息订阅(也称为“筛选器”),可以控制消息在应用程序 之间的传送方式。筛选器的定义可以在管理控制台上(发送端口上)进行,也可以通过定义 逻辑端口在业务流程中间接进行定义。如图1所示,在发布消息时,MessageBox根据订 阅对传入消息进行评估,并将消息传送给所有匹配的订阅服务器(发送端口或业务流程)。 这一发布/订阅体系结构使接收人与发送人完全分离。消吴柢可以跨物埋数据库伸编图IB

4、izTalk消息传送体系结构BizTalk与外界的交互是通过适配器来进行的。适配器采用特定的传输模式接收字节, 并创建一个新的BizTalk消息,当接收管道和映射(XSLT变换)有机会对传入消息执行 操作后,该消息就会发布到MessageBox (参见图2)。反之传送传出消息也是如此。映 射和发送管道有机会对传出消息执行操作后,适配器将生成的字节传送到传输模式。在Bi zTalk中,这些详细信息是通过发送和接收端口来进行配置的。图2 BizTalk内部端口BizTalk支持单向和双向端口。在接收端,您可以定义单项接收端口,仅接收消息而不 返回任何内容。也可以定义请求-响应接收端口,在收到请求时

5、将响应消息回发给呼叫方。 同样,在发送端,您也可以定义单向端口或要求-响应端口。BizTalk Server 2006附带了多种可支持众多传输模式和协议的适配器,其中有几个是 专为SOAP和WS-*而设计的。除了 SOAP和WS-*夕卜,BizTalk还支持许多通讯机制, 这是其最吸引人的特点之一。对于那些必须在维持旧有应用程序和对新式服务进行投入二 者之间权衡取舍的系统来说,这一点使BizTalk成为他们关注的焦点。Web服务适配器BizTalk Server 2006要与SOAP和WS-*集成,需要借助图3所列的彼此不同的 Web服务适配器来实现。SOAP适配器随BizTalk Serve

6、r 2004及更高版本附带,可支 持WS-I Basic Profile 1.1 (BP 1.1)消息。如果您需要支持WS-*协议,则必须借助市 面提供的WSE适配器,或等待BizTalk Server 2006 R2版本中附带的Windows Com munication Foundation 适配器。Figure3Microsoft 的 BizTalk Web 服务适配器适配器BizTalk Server 2004BizTalk Server 2006BizTalk Server 2006 R2SOAP包括包括包括WSE 2.0提供下载提供下载(需要SP1)提供下载(需要SP1)WCF不包

7、括不包括包括Microsoft 提供了一种 WSE 2.0 适配器,您可以从 adapter/adapters/wse 下载使用。该 WSE 2.0 适配器可运行于 BizTalk Server 2004 和 BizTalk Server 2006之上,尽管后者需要SP1版本。Microsoft决定不推出WSE 3.0适配器,因为即将推出的Windows Communication Foundation适配器具有同样效果的功能。但是有很多第三方WSE 3.0适配器可供我们选择。搓牧SOAP消,拈发送SOAP淖灯图4使用Web服务适配器您可以从这些适配器中任选一款,用于在BizTalk中发送和接

8、收SOAP消息。这些 适配器可以配合单向或双向端口使用。例如,您可以使用SOAP适配器发送和接收符合 BP 1.1的简单SOAP消息,也可以使用WSE 2.0适配器发送和接收按照WS-Securit y、WS-Trust 和 WS-SecureConversation 规范加以保护的 SOAP 消息。在接收端,处理SOAP和WS-*并将消息正文发布到MessageBox的任务统统由适 配器负责。在图4中,ASMX终结点从本质上看就是适配器。在运行时,ASMX代码与 BizTalk进行通讯,从配置数据库检索有关接收位置的详细信息,以便在发布期间可以使用 已设置的接收管道和映射集。实际上您可以借助

9、传统的BizTalk管道和映射对传入的SOAP消息进行预处理,这种功能强大的组合将为您的集成带来更多的可选方案。BizTalk要求所有基于HTTP的接收位置都要运行于独立的主机进程(例如I IS),而不是由BizTalk托管的进程。这意味着BizTalk并未完全控制对SOAP/HTTP接收位 置的配置。相反,它认为独立主机将控制各种SOAP/HTTP处理方面的细节。您还不得不 编写(或者更好,自动生成)独立主机的应用程序代码。通常是使用向导来生成要运行于独立主机的适配器的代码。但是您也不必非得使用向导, 可以编写一个能够接受任何SOAP消息并将其发布到BizTalk中的通用SOAP端点。另外您

10、还可以使用图3所列的任意一款Web服务适配器,以将BizTalk消息从Me ssageBox发送到外部Web服务。只需定义一个发送端口(使用所列适配器之一),然后 使用其提供的任意一种设置方式进行配置,以便能够传送传出的SOAP消息。值得注意的是,这些操作可以直接在BizTalk中执行,而不必借助业务流程。当然, 您也可以在业务流程中使用Web服务。这一可选方案很有吸引力,因为业务流程设计师 可以在大大简化开发人员体验的同时,为长时间运行的进程、关联和错误处理提供高级支持。 也可以将业务流程作为Web服务发布,以自动公开其公共接收端口。现在,让我们进一步了解如何使用目前的SOAP和WSE适配器

11、执行刚才介绍的一 些任务。使用SOAP适配器让我们假定用于处理订单的BizTalk解决方案已经准备就绪。为通过不同的传输模式 (例如,MSMQ和FTP)接收订单,您已经对几个接收位置进行了配置,用于处理已发布 订单消息的订阅也已准备就绪。除了需要完成的每件事情外,现在您只希望添加对通过S OAP接收订单的支持。在这种情况下,由于订单消息架构已有,因此只需根据它生成一个ASMX服务即可。可以运行BizTalk Web服务发布向导来从现有架构类型生成ASMX服务。该向导允 许您在发布架构或业务流程之间做出选择。该案例中,您希望发布架构。接下来,将要求您描述希望公开的Web服务约定。由于只是发布一个

12、架构,因此必 须手动定义Web服务的名称和希望创建的每个WebMethod操作的名称。然后,对于每 个WebMethod,可以将请求/响应消息映射到BizTalk程序集内找到的一个特定架构类型 (参见图5)。该向导将要求您提供有关要生成的ASMX代码的其他详细信息,如目标命 名空间、ASMX参数样式以及是否希望做出BP 1.1 一致性声明。此外还会询问您是否希 望支持其他的或未知的SOAP标头以便将来进行处理。BizTalk Web Services Publishing WizardWeb Service已 sc rib 已 th 已 w 已 B w 已 rvice pciu would l

13、ik.已 tci create.5已I已以 ard right-click a nod已比 vew im已nu options in order to add,已name, or delete 脚已b services and web methods:. Click Help for msre informatian.Inforniation:Web service description:曰0 rderP rocessin gG oluti on 白以!才 OrderProcessingS eiv ic e 白三.SubmitLIrder沮padWeb message Input:Name:

14、 Request Type: rderPr oces sing.S che m as. 0 rderE xt er L|C rderProcessing. Schemas. Lion=1.0.0. CL Ci4ltLjre=nButrall.ensme web messagelicK eyT oken=f97 4185b5db756e2sage type:二|Select schema type.图5发布一个架构最后,会要求您提供虚拟目录,生成的ASMX代码将部署于该目录中。另外向导还会 在一个现有的BizTalk应用程序中为您创建一个对应的接收位置。向导程序在完成时会生 成ASMX代码,将代

15、码发布到指定目录,并创建一个BizTalk接收位置,为服务进行配但是,在能够浏览已生成的ASMX端点之前,您需要先验证虚拟目录已配置为运行于 有权访问BizTalk数据库的应用程序池之中(应用程序池的身份需要为IIS_WPG和BizTalk独立主机用户的成员)。此时,还可以使用IIS和Microsoft .NET Framework中的传统配置方法对HTTP和ASP.NET处理的其他方面进行配置。另一半配置位于BizTalk接收位置。如果打开BizTalk管理控制台,您将发现向导所 创建的SOAP接收位置。接收位置属性与图6所示类似。注意,它已配置为在独立主机 实例中运行。而且,如果单击“配置

16、”按钮来配置SOAP传输,您会发现其中仅包含了服务 的地址(这是独立主机运行时查找BizTalk配置的其他内容(如接收管道和映射)所用的 关键字)。图6SOAP接收位置配置正确配置虚拟目录后,即可浏览到已生成的ASMX终结点,并将看到传统的ASMX 文档页。如果查看操作的详细信息,会发现每条SOAP消息的正文的确是您在向导中指定 的架构类型。这时,客户端就可以访问ASMX终结点,检索服务的Web Services描述语言(WSDL)定义以生成客户端代码。WSDL代码的生成使得可识别SOAP的客户端能 够更加轻松地与BizTalk解决方案集成在一起。现在,假设您需要一个外部帐单服务,以便响应传入

17、的订单消息来向帐单发送方发送消 息。另外我们还假设,一个用于与外部Web服务进行通讯的Web服务代理类已经开发 完毕。(要使用wsdl.exe或“添加Web引用”创建该类。)您可以创建一个能够将消息发送到该外部帐单服务的发送端口。只需选择SOAP适配 器,并指定外部Web服务的地址(参见图7)。然后,在“Web服务”选项卡上,选择要 使用的Web服务代理类和方法(参见图8)。BizTalk将在发送消息时使用该代理类。程 序集在运行时要位于全局程序集缓存(GAC)中。图7SOAP发送端口配置图8指定一个代理类要使操作成功,最困难的任务是在运行时为SOAP适配器提供正确的消息。如果指定 的代理类方

18、法有多个参数,BizTalk会希望您提供一条包含多个部分的消息,其中每个部分 均对应签名中的一个参数BizTalk会先将消息的每个部分反序列化为对应的.NET Frame work类型,然后再调用Web服务代理方法,该方法随后又将所有内容序列化为一条SO AP消息。注意,当您需要使用一个现有的WSDL定义时,可以使用BizTalk业务流程执行语 言(BPEL)导入向导通过WSDL生成一个业务流程窗体。也可以配合使用传统的wsdl.e xe /server和一些手动的干预手段来生成正确的适配器代码。有关各种约定优先(contract -first)技术的更多详细信息,请参阅 msdn.micro

19、soft.Com/library/en-us/bts_2004wp/html/7 f82d724-4f6f-4440-9b01-921d0cb51fc0.asp。SOAP传输属性在使用SOAP适配器时,有许多针对SOAP的消息上下文属性供您使用。这些属性 均位于SOAP命名空间,您可以从管道组件和业务流程形状内访问它们。例如,SOAP.AssemblyName 和 SOAP.MethodName 标识通过 SOAP 发送端口发 送消息时使用的Web服务代理类和方法。您还可能希望通过SOAP.Username和SOA P.Password动态地配置客户端凭据。还可能需要通过设置SOAP.Clie

20、ntConnectionTimeo ut来增大响应超时值。这些属性可用于在运行时对各种动态发送端口的属性进行配置。有 关SOAP适配器属性的完整列表及其工作原理,请参考SOAP适配器文档。在接收端上,您可能需要处理各种从传入SOAP消息中找到的SOAP标头。有两种 方法可以完成该任务。首先,如果在使用发布向导时定义的是任何已知的SOAP标头,则 这些标头将作为一个特殊的SOAPHeader命名空间内的自定义属性供您使用。否则,所 有未知的SOAP标头都被存储在SOAP.UnknownHeaders属性中。此外,如果需要添加 更多的SOAP标头到传出的SOAP消息中,可以在发送消息前填充SOAP

21、标头属性。在继续下一步操作前,我要提醒您的最后一点是,BizTalk Server 2006中新增了失败 消息路由功能。发送/接收端口启用该功能后,会将失败消息重新发布到MessageBox,消 息上下文将额外带有错误报告属性(位于ErrorReport命名空间)。这样,就可以订阅各 种ErrorReport属性,以便在SOAP发送/接收端口中出现某些错误时获得通知。在业务流程中使用SOAP适配器到目前为止,我已经介绍了在不使用BizTalk业务流程的情况下,在消息传送层中使 用SOAP适配器的基础知识。当然,您可以将SOAP适配器与业务流程配合使用,而通 常这一建议也是更容易实施的。运行相同

22、的BizTalk Web服务发布向导可以将业务流程作为一项Web服务来发布, 但在运行向导时需要选择发布一个业务流程。向导会要求您选择一个业务流程和希望公开的 公共端口。服务约定将派生自您选择的端口,因此您无需像之前那样手动定义约定。向导中 的其余步骤与之前的步骤相同:要求您提供各种IIS和ASP.NET设置,并生成一个AS MX服务。而主要的差异在于,该向导能够从业务流程自动派生约定。您也可以使用业务流程中的Web服务。首先,使用Visual Studio中的“添加Web 引用”命令。这将引入所需的架构和端口类型,您需要使用它们来从业务流程调用外部服务。 然后定义一个新的业务流程端口,并选择

23、“添加Web引用”命令所添加的Web端口类型。 使用生成的Web端口类型可确保将向Web服务发送或从其接收正确的XML消息。最 后,只需将“发送”和“接收”形状连接到Web端口以模拟Web服务调用即可。也可以从业务流程表达式形状内调用Web服务。在这种情况下,消息并不是从BizT alk消息传送层传送,因此不具有传统Web服务调用的低延迟特征。但是,频繁使用该方 法也可能使业务流程在部署之后变得更难以管理。通过使用“范围”形状和异常处理块,您可以在业务流程内处理服务返回的SOAP错误。 如果要对SOAP错误的详细信息进行处理,则应该将异常处理块配置为捕获System.We b.Services

24、.Protocols.SoapException类型的异常。同样,在将业务流程作为服务发布后, 业务流程可以将SOAP错误返回给调用方。WSE 2.0适配器WSE 2.0适配器的使用过程与之前所述的SOAP适配器的使用过程是相似的。我们 要着重谈一下二者的不同之处。首先您会发现,WSE 2.0适配器附带有属于自己的发布向导。运行该向导时,直到图 9所示的步骤之前,其步骤与SOAP适配器是几乎完全相同的,而在图9所示步骤中, 则要求您配置请求、响应和错误消息的安全策略。您可以指定要使用的令牌类型,甚至可以 在向导内指定某些令牌的详细信息。如果查看WSE 2.0向导生成的代码,您首先会发现,应用程

25、序是通过虚拟目录中的 WSE 2.0策略文件进行配置的。该策略是向导根据您提供的设置生成的。在某些情况下, 使用向导后,可能需要运行WSE 2.0配置工具来完成策略配置,而且您完全可以这样做。您可能还会注意到,生成的代码不再使用ASMX编程模型,而是使用WSE 2.0消息 传送API。生成的BizTalk接收位置看上去也与SOAP版本的相似,但是WSE传输配 置对话框则稍有不同,因为它公开了另外一些与安全性相关的配置选项。发送端执行的操作要比SOAP适配器的更简单一些。使用WSE 2.0发送端口,您将无需再指定Web服务代理类。而只需指定Web服务URL和相应的策略配置即可,适 配器会负责自动

26、生成和发送相应的消息。借助WSE 2.0适配器在业务流程中使用Web服务时,您也不必再使用“添加Web 引用”命令。取而代之地,使用“添加生成的项”命令并选择“添加适配器元数据”选项。当“添加 适配器向导”出现时,从已注册适配器列表中选择“WSE”,然后单击“下一步”。会出现BizT alk Adapter for WSE架构生成向导。BizTalk Adapter for WSE架构生成向导会要求您提供WSDL定义的地址并稍后下 载该定义,以检索可能服务和操作的列表。按照向导的要求,您需要从该列表中选择一项服 务和一组方法。然后向导会要求您对与服务进行通讯所需的WSE 2.0策略文件进行配置

27、。 策略可以从URL (如果可用)下载,也可以使用图9所示的策略配置对话框手动进行配 置。与“添加Web引用”一样,向导会添加与服务进行通讯所需的架构和端口类型。而且还 会生成一份名为PolicyCache.xml的WSE 2.0策略文件,该文件被保存到WSE 2.0适 配器安装目录内的 Policy 目录(请参阅 PROGRAMFILES%Microsoft BizTalk Server Adapter for WSE 2.0Policy)。BizTalk在这里可以找到所有的WSE 2.0策略。在安装 WSE 2.0适配器时,它实际上是通过一个引用了该全局PolicyCache.xml文件的

28、 元素对BTSNTSvc.exe.config进行更新。WSE 2.0适配器还引入了各种新的消息属性(例如,WSE.SoapAction、WSE.Soap Headers、WSE.AddressingHeaders、WSE.ReferralHeaders、WSE.SecurityHeaders 和 WSE.ClientCertificate),用于提供对有关WSE的信息的访问。有关详细信息,请查阅 WSE 2.0适配器文档。总而言之,WSE 2.0适配器提供的这些主要的新功能是支持基于消息的安全策略的, 同时在无法使用业务流程的仅允许消息传送的解决方案中,还可以对基于内容的路由提供支 持。WC

29、F适配器BizTalk Server 2006 R2 版本将附带几个 Windows Communication Foundation适配器,这些适配器将共同为WS-*和与传输模式无关的消息传送提供完全支持。对于许 多内置的 Windows Communication Foundation 绑定(例如,BasicHttpBinding、WSHtt pBinding、NetTcpBinding、NetNamedPipeBinding 和 NetMsmqBinding)来说,实际上 都会有一个单独的适配器。而且还提供了一个自定义的Windows Communication Found ation适

30、配器,您可以对其绑定进行完全的配置。虽然该自定义适配器将是您唯一真正需要 的适配器,但对于某种常见的消息传送方案,其他绑定会更易于使用。该自定义适配器不仅可以执行SOAP和WSE适配器所能执行的操作,而且还远不 止于此。它将提供对WS-*堆栈的完全支持,其中包括各种安全性、可靠消息传送以及事 务规范。对这些规范的支持将允许您处理更为复杂的安全和路由方案,甚至能够将Messa geBox包含在Web服务事务中。此外,它还将提供简化的承载、通讯和配置选项。例如,使用Windows Communicat ion Foundation适配器,只需配置一个接收位置并在BizTalk管理控制台中加以启用(

31、无 需发布)即可在BTSNtSvc.exe中承载非HTTP服务。但是,最吸引人的功能或许是合一性。具体说来,Windows Communication Foundat ion适配器将SOAP和WSE适配器提供的功能合而为一,因此您完全不必再依赖它们。 将来在对各种不同的服务配置进行集成时,应该只需要各种Windows Communication Fo undation 适配器即可实现目的。有关 Windows Communication Foundation 及其与 ASP.NET和 WSE Web服务的互操作性的详细信息,请参阅 9.aspx 上的 Windows SDK。总结BizTalk

32、 Server 2006通过前面讨论的内置SOAP适配器和WSE适配器为当今的Web服务技术提供支持。(有关BizTalk的详细信息,请参阅“BizTalk资源”侧栏。)SO AP适配器提供BP 1.1通讯,而WSE适配器则提供更高级的WS-*支持。但是,与传 输模式无关的WS-*消息传送这一激动人心的发展只有在BizTalk Server 2006携Win dows Communication Foundation适配器一同出现后才可以完全实现,但不要着急,这一 刻即将来临。本文仅仅介绍了 Windows Communication Foundation适配器的主要特点。我保证,在今后的专栏中我们还会进行更加深入的探讨,对第一个公开测试版进行更详细的 介绍。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号