BizTalk Server 为 Web 服务提供内置支持。 它使你能够重复使用和聚合业务流程中的现有 Web 服务。
概述
还可以将业务流程发布(公开)为 Web 服务以将 Web 服务逻辑与业务流程逻辑分开,这样就可以根据需要更新或替换业务逻辑,而无需触摸用于 Web 服务逻辑的代码。 此功能称为实现“模块化代码”。一般情况下,最佳做法是尽可能实现模块化代码。 发布 Web 服务要求启用 Web 服务,并使用 BizTalk Web 服务发布向导将业务流程或架构发布为 Web 服务。
BizTalk Server 通过使用 SOAP 适配器在 Web 服务中实现对本机适配器的支持。 本机适配器支持为 Web 服务提供可伸缩性、容错性和跟踪功能,而无需编写单行代码。 有关 SOAP 适配器的详细信息,请参阅 SOAP 适配器。
Web 服务的规划可以分为两个类别:规划发布 Web 服务和规划使用 Web 服务。 本主题介绍发布 Web 服务时应遵循的步骤。
启用 Web 服务
若要发布 Web 服务,必须配置 Internet Information Services (IIS)、BizTalk 独立主机和 Windows 用户和组帐户。 本部分概述如何启用 Web 服务。 有关启用 Web 服务的详细信息,请参阅 IIS 文档。
互联网信息服务
可以将 Web 服务发布到配置有 ASP.NET IIS 的 Windows 系统。 在 IIS 中,所有 Web 服务都在 ASP.NET 工作进程内运行。
IIS 使用应用程序池来处理 Web 服务请求。 IIS 支持多个应用程序池,每个应用程序池进程都可以在不同的用户上下文下运行。
BizTalk 独立主机
若要启用 Web 服务,必须在 BizTalk Server 中创建至少一个独立主机。 独立主机表示外部进程,例如 BIZTalk Server 不创建或控制的 ISAPI 扩展和 ASP.NET 进程。 这些类型的外部进程必须托管某些适配器,例如 HTTP/S 和 SOAP。
BizTalk Server 配置管理器创建 BizTalkServerIsolatedHost,BizTalk Server 用作默认隔离主机。 默认情况下,BizTalk 独立主机用户组是与此主机关联的 Windows 组的名称。 有关主机和主机实例的详细信息,请参阅 管理 BizTalk 主机和主机实例。
独立主机实例只能运行一个适配器。 如果使用一个隔离主机配置 HTTP 和 SOAP 适配器的接收处理程序,则必须为每个适配器创建两个应用程序池,一个应用程序池。
例如,如果计划配置两个独立主机,如下所示:
独立主机名 | 接收位置 |
---|---|
独立主机 1 | HTTP_ReceiveLocation1A HTTP_ReceiveLocation1B SOAP_ReceiveLocation1注意:隔离主机 1 用于接收 SOAP 和 HTTP 适配器的处理程序。 |
独立主机 2 | HTTP_ReceiveLocation2 |
可以创建四个虚拟目录,每个目录对应一个接收位置,如下所示:
接收位置 | 虚拟目录 |
---|---|
HTTP_ReceiveLocation1A | IIS_Virtual_Directory1A |
HTTP_ReceiveLocation1B | IIS_Virtual_Directory1B |
SOAP_ReceiveLocation1 | IIS_Virtual_Directory1C |
HTTP_ReceiveLocation2 | IIS_Virtual_Directory2 |
然后,必须为虚拟目录至少创建三个应用程序池,如下所示:
注释
必须为每个独立主机至少创建一个应用程序池。
虚拟目录 | 应用程序池 | DESCRIPTION |
---|---|---|
IIS_Virtual_Directory1A IIS_Virtual_Directory1B |
AppPool_Host1_HTTP | 不需要单独的应用程序池,因为所有接收位置具有相同的独立主机(独立主机 1)和相同的协议。 |
IIS_Virtual_Directory1C | AppPool_Host1_SOAP | 需要单独的应用程序池,因为接收位置使用与同一主机(独立主机 1)中的其他接收位置不同的协议(SOAP)。 |
IIS_Virtual_Directory2 | AppPool_Host2_HTTP | 需要单独的应用程序池,因为接收位置在隔离主机 1 的不同主机下运行。 |
创建应用程序池时,请记住以下要点:
必须将应用程序池的用户帐户添加到隔离主机的相应本地或域组。 请参阅 BizTalk Server 中的 Windows 组和用户帐户。
需要根据前面的表匹配独立主机实例与相应的应用程序池之间的用户帐户。 有关独立主机实例和应用程序池用户帐户之间的关系的详细信息,请参阅 如何更改服务帐户和密码。
单服务器安装中的数据库访问
如果 BizTalk Server 和 BizTalk 管理数据库驻留在同一服务器上,则应将 ASP.NET 工作进程或 IIS 应用程序池的用户上下文设置为本地 ASPNET 用户帐户,或设置为具有最小权限的本地或域用户帐户。
数据库访问用于多服务器安装
如果 BizTalk Server 和 BizTalk 管理数据库位于不同的服务器上,则应将 ASP.NET 工作进程或 IIS 应用程序池的用户上下文更改为域用户帐户。
实现多服务器部署时,独立主机 Windows 组必须存在于 BizTalk 数据库服务器所属的域中。
最小化帐户特权和用户权限
使用独立主机为在外部进程中运行的适配器提供对与 BizTalk Server 交互所需的最少数量的资源的访问权限。 对于更安全的部署,应为外部进程提供最低权限的用户上下文。
BizTalk Web 服务发布向导的安全建议
BizTalk Web 服务发布向导创建的虚拟目录将从父虚拟目录或网站继承访问控制列表(ACL)和身份验证要求。 如果父虚拟目录或网站允许匿名访问,BizTalk Web 服务发布向导将在创建虚拟目录时删除该功能。
为已发布的 Web 服务启用 ASP.NET 4.0
请参阅 如何为已发布的 Web 服务启用 ASP.NET 4.0。
使用 BizTalk Web 服务发布向导
有关将业务流程发布为 Web 服务的详细信息,请参阅 将业务流程发布为 Web 服务。
有关将架构发布为 Web 服务的详细信息,请参阅 将架构发布为 Web 服务。
规划如何发布 WCF 服务
BizTalk Server 引入了对 Windows Communication Foundation(WCF)的内置支持。 BizTalk Server 使你能够重复使用和聚合业务流程中的所有现有 WCF 服务。 BizTalk Server 还实现了对 WCF 服务中的本机适配器的支持。 本机适配器支持为 WCF 服务提供可伸缩性、容错性和跟踪功能,而无需编写代码。 有关 WCF 适配器的信息,请参阅 WCF 适配器。
有关在 BizTalk Server 中规划 WCF 服务的详细信息,请参阅 发布 WCF 服务。