技术开发 频道

Team System:设计分布式系统以进行部署

    应用程序连接设计器

    应用程序连接设计器 (ACD) 可以帮助开发人员或架构师定义和配置组成供部署的系统的应用程序。工具箱中提供了一组预定义的应用程序原型,它包括 Web 服务、Web 应用程序、Windows 应用程序、外部数据库、外部 Web 服务和外部 BizTalk 服务。此外,还包括一种用于在设计中记录其他应用程序类型的通用应用程序原型。

    应用程序连接关系图显示单个 Visual Studio 解决方案中定义的应用程序。可以通过从工具箱中添加每个应用程序来从头创建关系图,也可以通过从现有解决方案或现有项目进行反向工程来创建关系图。
图 1 显示一个应用程序连接关系图示例。

    ACD 可以同时显示“内部”和“外部”应用程序。内部应用程序是在解决方案中定义的单个可部署应用程序,它们可以组成一个或多个可部署系统。通常,一个内部应用程序就是一个项目,它定义一个可宿主的可执行程序(例如,Web 应用程序或 Windows 应用程序)。资源既可以包括在该项目中,也可以位于其他引用项目或共享项目中,包括类库项目。外部应用程序允许开发人员对部署过程中所要涉及的其他系统进行可视化引用。

    每个应用程序都用一个框表示,较小的框代表连接点,说明应用程序是连接目标还是连接源。这些连接点称为终结点。应用程序提供的服务由提供程序终结点(实心形状)表示;其他应用程序提供的服务的连接点由客户终结点(空心形状)表示。各个应用程序都通过它们的终结点彼此连接在一起。

    尽管 SDM 模型主要关注终结点的类型、配置和连接,但各个应用程序可以扩展该模型来表示服务所提供的行为的定义。例如,可以使用以下两种方法之一来定义 Web 服务终结点:单击某个 Web 服务提供程序终结点,允许在“Endpoint Details”窗口中定义该 Web 服务的操作;也可以导入现有的 Web 服务描述语言 (.wsdl) 文件中的行为定义。通过这种方法扩展模型,ACD 可以支持完整的设计体验,例如,允许完全指定 Web 服务应用程序的行为和配置。

    ACD 上显示的连接描述了开发环境中应用程序的当前配置。如果应用程序经过调试,它将沿着显示的连接路径运行。

    ACD 支持一种延迟的实现方法,允许用户在将设计实现为代码之前创建和验证设计。如果从工具箱中将应用程序定义添加到 ACD,则相应的项目、代码和配置文件不会立即创建。代码的第一次生成称为“实现”。应用程序定义可以增量实现,也可以一次性实现。在关系图中,已实现的应用程序用阴影来区分。一旦实现了一个应用程序,则只要保持关系图和代码文件打开,关系图中显示的所生成的代码文件、配置文件和应用程序设计就会始终保持同步。如果关系图由于某种原因关闭,重新打开它将使其与代码同步,同时可用关闭关系图时对代码所做的更改来更新它。这样,ACD 中的设计模型便可轻松地与对代码所做的任何更改保持同步,而这是其他工具的一个常见问题。如果应用程序是通过对现有项目或解决方案进行反向工程而创建的,则认为它已经实现,并且自此会自动同步。

    通过对实现加以延迟,架构师和应用程序设计人员可以集中精力完成系统的功能设计和验证,同时延迟一些最好稍后由开发团队作出决策的实现。这些决策可能包括选择编程语言和模板,或者用于 Web 项目的服务器位置。

    由于关系图保存为文件(.dsdgm 文件),因此可以将其包括在源代码管理中,并合并到团队的正常工作流。有关实现的应用程序的信息保存在每个项目的 .sdm 文件中。这使得可以在多个解决方案中重用项目,并且可以将工作在团队的开发人员之间进行划分。

    ACD 可以访问应用程序配置设置的完整模型,并且能够定义宿主约束。宿主约束允许应用程序设计人员指定宿主环境的要求。通过在设置和约束编辑器中定义应用程序定义的宿主约束,应用程序开发人员可以请求一组目标部署环境中可用的必需功能,这样就可以向操作人员传达重要的应用程序要求。之后,操作人员可以决定是否要对逻辑数据中心进行更改以满足这些请求。作为部署验证的一部分,系统要根据逻辑数据中心的设置和约束来验证应用程序的设置和宿主约束(请参见部署设计器)。

0
相关文章