摘要: Microsoft Visual Studio 2005 Team Edition 是一个随 Visual Studio 2005 一起提供的图形设计工具套件,主要面向架构师和开发人员。它支持连接系统的可视化设计和验证。Visual Studio 2005 Team Edition for Software Architects 是动态系统管理计划 (DSI) 的早期产品,旨在提升企业级分布式系统的设计、部署和管理。
注 本文内容最初发表于 .NET Developer's Journal 的 2005 年 1 月号。此处转载已经发布商许可。
本页内容
设计目标:连接系统的可视化设计 | |
设计目标:对操作进行设计 | |
Visual Studio 2005 Team Edition for Software Architects“分布式设计套件” |
设计目标:连接系统的可视化设计
面向服务的体系结构或“连接系统”体系结构是下一代分布式应用程序的基础。Microsoft Indigo 平台将提供业界领先的面向服务的应用程序实现。Indigo 将在当今 Windows 平台所提供的 SOAP 和 Web 服务支持基础之上进行构建。它将添加对传输和应用程序拓扑的广泛支持,从而在服务之间启用安全、可靠和基于持久消息的通信。虽然 Indigo 技术的发布指日可待,但目前可以使用 SOAP、XML 消息处理和 Web 服务来构建面向服务的应用程序。Web 服务提供集成异类信息系统的特殊方法。要做到这一点,则在基于公共 Web 服务的基础结构后包装自治系统,从而使您能够通过多种设备(企业防火墙的内部和外部)进行访问。Web 服务提供对边缘系统的强大支持,从而能够实现利用现有系统资源的新的业务处理。此外,还提供在全新系统的结构中提高使用率的可能性。将应用程序结构作为一个整体进行可视化变得越来越困难,因为在面向服务的体系结构中,结构将更加琐碎。还要强调的是服务提供的接口设计。要启用互操作性,这些接口必须基于消息。设计新消息并确保符合现有的消息架构很重要。在面向服务的体系结构中,协助应用程序架构师和设计人员将应用程序作为一个整体进行可视化和设计日益重要起来。
设计目标:对操作进行设计
无论是否是分布式,所有应用程序都需要底层平台的服务。通常,由开发人员负责“记录/指定”应用程序服务依赖项和目标部署环境的配置需求。虽然许多开发工具只关注应用程序的功能需求,但非功能性的需求通常是配置和/或部署问题的根源。另一方面,操作机构和 IT 机构有不同的开发工具,以迎合分布式系统的非功能性方面,同时注重网络和基础结构设计、性能监视和管理。实际问题是,操作人员视图是应用程序的一部分,而开发人员视图是基础结构的一部分。正是该信息需要捕获并在这两个组群间进行通信。请考虑开发和部署 ASP.NET Web 服务的简单情况。虽然开发人员的首要目的是实现服务,但他们始终要关心安全性和身份验证模型。他们还必须考虑目标环境需要其他哪些支持服务,以及运行库配置的哪些部分能使 Web 服务按意愿操作。操作人员需要了解新服务需要的协议和服务,以及是否遵从公司的 IT 策略。脱离该环节会导致部署问题,从而导致配置不匹配。更糟糕的是,它会导致设计与数据中心不协调,从而使大量 IT 预算耗费在低质量开销上。虽然许多组织试图通过文档、设计评论和详细的图表来解决通信问题,但实际上他们缺少的只是能够有效实施和传达策略的工具和公共语言。此外,这些“过程”目前已从开发人员和操作人员每天使用的实际工具中移除,以便暴露过程本身的问题。这些群组在组织上和功能上是脱离的。他们极少事先协作,通常是本能地一起诊断可在开发过程早期避免的问题。Visual Studio 2005 Team Edition for Software Architects 是一个统一的开发环境,它可将这两个群组一起带入软件开发周期,从而逐渐填补他们之间的隔阂。
Visual Studio 2005 Team Edition for Software Architects“分布式设计套件”
要提供集成的设计体验以达到“可视化设计和验证连接系统”的目标,工具的设计套件则使用动态系统管理计划 (DSI) 中的系统定义模型 (SDM) 作为底层元模型的基础来构建。这不仅为应用程序服务,还为运行库环境描述了连接性、配置和关系的概念。SDM 基于多层模型(应用程序、应用程序宿主环境、网络拓扑和操作系统,以及物理设备)。因此,这些工具现在可根据跨分布式系统所有层的要求和策略来表示关系。Visual Studio 2005 Team Edition for Software Architects 也被设计为一种可扩展平台,以实现具备应用程序领域专业知识(Web 服务、Web 应用程序、数据访问等)的内部和外部合作。这不包括操作领域(运行库宿主环境、安全性、连接性和配置等)。因此,他们可以定义自己的抽象。
将两个领域(开发和操作)集成到一个工具套件,使 Microsoft 能够用以下方式解决这些客户问题:
• |
使用公共语言(表示为 SDM)描述整个分布式系统的设计和配置。 |
• |
使用抽象,以便各个领域的开发人员和架构师能够基于共同点进行通信。 |
• |
允许架构师或开发人员表达运行库环境的应用程序要求。 |
• |
允许操作人员(或了解目标部署环境要求的应用程序架构师)表达应用程序运行库、安全性以及与目标部署环境的策略相协调的连接要求。 |
• |
与现有的 Visual Studio 项目系统和 .NET 平台技术相集成。 |
• |
与 Visual Studio Team System 产品和源代码控制功能相集成。 |
• |
在策略上定位于 DSI 规划,以启用部署和管理方案,并在未来版本的 Visual Studio 2005 Team Edition for Software Architects 中支持 Indigo。 |
• |
使用可扩展平台构建 ISV 和伙伴生态系统。 |
设计套件功能
应用程序设计器 (AD) 提供一个设计图面,以用于公开服务和通过消息进行通信的图表应用程序。用户能够通过通信端点来描述这些消息。这可以使用 SOA 协议(如 SOAP)通过操作方法或基于 WSDL 协定消息的方法来完成。编写代码之前,用户能够通过图像布局中的端点公开的通信依赖项来可视化连接应用程序的设计。因此,该上下文中的应用程序是在它们自己的进程空间中运行的自治部署单元(例如,Web 应用程序、Windows 应用程序等)。因此,在解决方案中,图表可视化将不包括依赖程序集或项目引用(根据定义,其本身不是“应用程序”)。通过用户操作从图表实现的应用程序将生成项目结构和协定的初始实现。然后,它们将与 Visual Studio 项目和语言系统完全集成。它们始终与设计图面同步,并为用户提供在设计图面或代码编辑器中编辑的选项。Visual Studio 2005 Team Architect 本身所支持的应用程序类型包括 Web 服务、Web 应用程序、Windows 应用程序、外部数据库、外部 Web 服务以及外部 Biztalk 服务。AD 还用于捕获由设计器完全同步的应用程序配置(例如,Web.config 和来自 IIS 的 Web 应用程序配置)。这允许架构师或开发人员捕获应用程序所需的确切配置,同时向约束引擎(该工具的隐含部分)公开丰富的元数据。因而,该套件中的其他设计器可利用该信息来执行约束验证、一致性检查,并生成部署信息(请参阅后面的系统设计器、逻辑数据中心设计器和部署设计器)。
架构师使用逻辑数据中心设计器 (LDD) 来创建表示数据中心某部分逻辑结构的图表。这样做可以将有关特定应用程序领域的目标部署环境的重要信息传达给开发人员。在工具中捕获该信息可验证应用程序的设计和配置要求(请参阅后面的部署设计器),以提高成功部署的可能性。图表本身表示实际环境的抽象。根据设计,它不捕获典型的“基础结构或系统体系结构”元素(例如,防火墙、路由器、交换机、IP 地址等)。这些通常是操作群组和开发群组之间通信问题的一部分。相反,图表主要关注将应用程序运行库宿主环境捕获到名为“逻辑服务器”的设计元素。该图表中指定的信息表示允许的通信类型、启用的服务类型,以及影响应用程序设计和运行库特性的宿主环境的配置要求。LDD 允许架构师指定互连逻辑服务器的图表,从而指定和/或导入实际服务器的设置。还可以通过表示具有特定协议的应用程序宿主环境(例如,Web 服务器、数据库服务器、应用程序服务器、安全区域以及通信路径),来指定数据中心的拓扑。描述逻辑数据中心后,用户就可以开始为应用程序指定策略约束,这些应用程序将宿主在这个数据中心表示中。例如,通过该图表,架构师可以指定宿主在特定 IIS Web 站点上的 Web 应用程序的 ASP.NET 安全要求。用户可以指定到其他逻辑服务器(例如,数据库和 Windows 服务)的连接性。用户还可以定义表示安全性、通信或其他物理障碍的逻辑边界(称为“区域”),应用程序开发人员在考虑分布式设计时会发现它很有用。与应用程序架构师可以在 AD 中针对 LD 配置指定宿主要求一样,基础结构或操作架构师也可以针对 AD 的应用程序配置指定应用程序要求。
为了创建连接系统,应用程序架构师使用系统设计器 (SD) 来可视化和构建 AD 中定义的应用程序。配置好的系统包括为该系统的特定部署而配置的一个或多个应用程序。系统可以包含(嵌套)其他系统;因而允许可视化和指定面向服务的大型体系结构。通过系统设计器,应用程序架构师可以描述对其他系统所提供服务的依赖项,而无需事先了解构成所用系统的应用程序的内部结构。系统设计器提供一种自上而下的设计模式。系统可以在较高的级别组建,然后可以对系统中的单个应用程序(如果系统中的应用程序是解决方案的一部分)进行可视化和定义。它还能够封装由系统中的应用程序公开的服务。特别是,架构师可以选择哪些服务能够在系统外部直接解决。系统设计器可用于解决 EAI 和边缘系统情况(其中,现有的应用程序通过 Web 服务协议公开服务)。
架构师使用部署设计器 (DD) 来创建已配置系统的部署配置。这通过首先针对数据中心 (LDD) 的逻辑表达式进行验证完成。接下来,生成部署配置(称为部署报告),并将其用于在操作和开发之间进行通信以及编写部署脚本。DD 提供从系统关系图到逻辑数据中心关系图的图到图的图形化绑定体验,并提供可视化反馈。这在验证已配置系统的要求符合数据中心要求的规范时完成。验证反馈在多个级别上执行,例如,通信路径、协议、数据中心环境的特定配置以及应用程序配置要求。Visual Studio 任务列表集成提供一个简单的导航机制来突出强调关系图(AD、SD 和/或 LDD)。它还可以协助用户选择与数据中心的策略冲突的系统。它还为用户提供在部署之前以及完成实现之前修正配置错误的功能。导航功能还允许用户查看约束定义的源,以便进一步探查问题领域。该 DD 是用于可视化如何将已配置系统部署到类似配置的数据中心环境的主要通信机制。部署报告可以从该设计图面生成,并且用户可以指定选项来生成可读的 (HTML) 报告,该报告将包含关系图以及部署数据。部署数据包括每个应用程序和逻辑服务器的配置设置,以及要部署的文件列表。
Visual Studio 2005 Team Edition 可扩展平台
Visual Studio 2005 Team Edition 设计为一个可扩展平台,以使第三方能够利用现有的专业知识,同时利用分布式系统设计套件的可视化设计和验证功能。这是遵循完全统一的开发环境(作为 Visual Studio Team System 的一部分)进行规划的第一个版本。Visual Studio 2005 版提供的扩展性功能将允许第三方记录和构建分布式系统的各个方面,以获得更为完整的应用程序定义。扩展性功能使第三方或 ISV 能够创建他们自己的应用程序或逻辑服务器类型。这将通过通信需求、宿主需求、配置设置和约束来完成。这些新类型可轻松添加到设计图面,并与第一版中提供的原生设计元素集成在一起。设计体验中收集的元数据可用于约束规范,并可以在部署报告中输出。Visual Studio 2005 版不允许将配置和手工编写的代码集成并同步化到这些新设计元素的项目系统中。但是,该功能将添加到后期版本的工具套件中。
链接
• | |
• |
Visual Studio 2005 Team System: Designing Distributed Systems for Deployment |
• |
Visual Studio 2005 Team Edition for Software Architects (位于 MSDN ) |