应用程序系统中的外部应用程序

更新:2007 年 11 月

在分布式系统设计器中,可以描述将不在解决方案中实现但是将连接到解决方案中应用程序的外部应用程序。例如,可以对外部 Web 服务进行可视化处理、引用外部 Web 服务并将外部 Web 服务连接到解决方案中的应用程序。有关更多信息,请参见 在应用程序关系图中定义应用程序

在用连接到外部应用程序的应用程序设计应用程序系统时,可以在您的系统中包括和连接这些外部应用程序。换言之,可以从您的系统中排除外部应用程序,并在您的系统中为要连接到外部应用程序的每个使用方终结点添加一个代理终结点。有关更多信息,请参见定义系统关系图上的通信路径委托和公开应用程序系统的行为

说明:

尽管本主题着重于以外部 Web 服务为例,但是,其中涉及的概念同样适用于从系统定义模型 (SDM) 软件开发工具包 (SDK) 创建的 BizTalk Web 服务、数据库、泛型应用程序和自定义应用程序类型。有关更多信息,请参见用于定义应用程序的应用程序类型和原型

以下各节讨论了有关使用这些应用程序类型的方法和指南,如下所述:

  • Including External Web Services in Systems

  • Excluding External Web Services from Systems

  • Choosing the Right Approach

在系统中包括外部 Web 服务

如果将应用程序连接到应用程序关系图上的外部 Web 服务,可以选择在系统中包括外部 Web 服务。在系统中包括外部 Web 服务并非表示 Web 服务将与该系统一起部署。但是,如果包括外部 Web 服务,则可以完成下列任务:

  • 对系统关系图上外部 Web 服务的引用进行可视化处理。

  • 将多个应用程序连接到外部 Web 服务,以指示这些应用程序必须连接到同一个 Web 服务 URL。有关更多信息,请参见应用程序系统中的通信

  • 为系统定义部署时,可以指定外部 Web 服务必须部署到的逻辑服务器。还可以验证逻辑数据中心中是否存在通信路径,以支持外部 Web 服务与连接到它的应用程序之间的连接。有关更多信息,请参见 使用部署设计器评估系统部署

使用这种方法时应该注意下列事项:

  • 使用方终结点可以连接到提供方终结点或代理终结点,但不能同时连接到两者。

    如果将使用方终结点连接到系统内的外部 Web 服务,将无法在这个系统上为该使用方终结点创建代理终结点。如果该使用方终结点没有代理终结点,则将无法在这个系统外部公开该使用方终结点的行为,而且无法将该代理终结点连接到另一个系统中的 Web 服务以解析 URL。

  • 部署系统时,必须提供外部 Web 服务提供方终结点的 URL。在配置所连接的使用方终结点时,需要使用此 URL。

使用外部 Web 服务表示 ASP.NET Web 应用程序

如果已将应用程序连接到应用程序关系图上已实现的 ASP.NET Web 应用程序(包含一个 .NET Web 服务提供方终结点),那么,在想要设计不包括该 ASP.NET Web 应用程序的系统时,可以使用外部 Web 服务替换该 ASP.NET Web 应用程序。若要使用此策略,在创建外部 Web 服务之前,必须从解决方案中移除 ASP.NET Web 应用程序,或创建不包含 ASP.NET Web 应用程序的其他解决方案,然后在该解决方案中定义系统。

说明:

从该应用程序创建外部 Web 服务时,不要替换应用程序关系图上的 ASP.NET Web 应用程序。在该应用程序关系图上,.NET Web 服务提供方终结点的位置只能被引用一次。有关更多信息,请参见 如何:定位 Web 服务的 WSDL 文件

从系统中排除外部 Web 服务

如果将应用程序连接到不想包括在系统中的 Web 服务,则必须为该应用程序的使用方终结点创建代理终结点。有了代理终结点,就可以在将该系统包括在其他系统中时,在该系统的外部公开这些使用方终结点并连接它们。有关更多信息,请参见委托和公开应用程序系统的行为

说明:

Web 服务可以是外部 Web 服务,也可以是包含 .NET Web 服务提供方终结点的 ASP.NET Web 应用程序。

使用这种方法时应该注意下列事项:

  • 为系统定义部署时,不能指定所引用的外部 Web 服务必须部署到的逻辑服务器。此外,不能验证逻辑数据中心中是否存在通信路径,以支持外部 Web 服务与引用该服务的应用程序之间的连接。

    提示:

    通过将系统和/或外部 Web 服务包括在其他系统中,可以解决此问题。

  • 在系统关系图上,不能指示系统中的应用程序必须连接至同一个 Web 服务 URL。

    提示:

    如果使用这种方法,请为系统上的代理终结点必须连接到同一个 Web 服务 URL 的每种情况进行单独记录。例如,可以向系统关系图中添加注释。如果需要重用其他系统中的系统,此信息将很有用。有关更多信息,请参见 如何:向分布式系统关系图添加注释

  • 如果将包含代理(使用方)终结点的系统部署为独立系统(即,不包括在其他系统的上下文中),则必须在部署过程中提供每个代理终结点的 Web 服务 URL。在配置由代理终结点公开的使用方终结点时,需要使用这些 URL。如果要将该系统部署为另一个系统的一部分,则这个包含系统中连接到使用方代理终结点的提供方终结点将提供 URL 源。

选择正确的方法

如果系统是自包含系统,且将部署为独立系统(不包括在其他系统中),可以选择包括外部应用程序、泛型应用程序或自定义应用程序类型,以及连接到该系统中这些应用程序类型的应用程序。如果打算将该系统包括在其他系统中,则需要使用该系统中使用方终结点的代理终结点来公开这些使用方终结点的行为,并在该系统外部连接这些使用方终结点。

您还可以结合使用这些方法。如果要将某个系统部署为独立系统并将其包括在其他系统中,可以创建两个系统,其中一个系统包含在另外一个系统之中。可以定义一个系统来包含使用方应用程序并通过代理终结点来公开使用方应用程序的行为,定义另一个系统来包括外部应用程序以及具有代理终结点的系统。可以将这些外部应用程序连接到相应的代理终结点。如果需要将这些使用方应用程序包括在另一个系统中,可以使用内部系统。如果要单独部署此功能,则可以使用外部系统。但是,这种方法要求维护两个系统。有关更多信息,请参见 如何:在应用程序系统中将外部应用程序与引用应用程序合并

请参见

其他资源

在系统关系图上设计应用程序系统