Workflow Across Distributed System Designers
In Visual Studio Team System Architecture Edition, you can follow different workflows when you design and evaluate application systems for deployment by using the Distributed System Designers. The workflow that you follow depends on the tasks that you want to perform and the approach that you want to use when you design your systems. For more information, see Overview of Application Systems.
You can perform the following tasks when you use the Distributed System Designers:
Design application systems.
Design logical datacenters.
Define and evaluate deployment for application systems against logical datacenters.
The following sections contain more information about the high-level tasks you perform in Distributed System Designers:
Designing Application Systems
Designing Logical Datacenters
Defining and Evaluating Deployment for Application Systems
Designing Application Systems
You can design systems by using a top-down or bottom-up approach. You can use a top-down approach when you want to design systems and delay choosing how to implement them. This approach allows you to delay choosing the applications that you want to use in your systems. You can use a bottom-up approach when you know the applications that you want to use in your systems. When you use this approach, you first define the applications that you will later include in your systems. You can also use a combination of these approaches during your design process.
The following illustration shows how an example workflow might progress through the system design process, depending on the approach you choose.
System Design Workflow by using a Top-Down or Bottom-Up Design Approach
The following sections contain more information about these approaches:
Designing Application Systems by Using a Top-Down Approach
Designing Application Systems by Using a Bottom-Up Approach
Designing Application Systems by Using a Top-Down Approach
You can design an application system from a top-down approach by starting with System Designer. You can begin by creating a distributed systems solution from the System Design solution template. This template creates a solution that contains a blank system diagram and application diagram. You can also begin by adding a system diagram to your solution or opening an existing one. You can add multiple system diagrams to your solution.
On this system diagram, you can define a single system that you can configure for deployment and reuse in other systems. You can add other systems, applications, or both applications and systems as members to the definition of this system. You can perform this task by dragging new systems or applications from the Toolbox. You can also drag any existing systems or applications from the System View window. The definitions for these systems appear on other system diagrams. The definitions for these applications appear on the application diagram.
For example, you might begin a top-down approach by designing the top-level or outermost system. You can represent that system's behavior by adding endpoints and defining contracts for that behavior. You can then add systems as needed. You can add new or existing systems to your system definition. You might continue adding systems until you know which applications that you want to add and configure as members for the most granular-level systems. This approach makes it possible for you to focus only on systems so that you can design them more quickly. To continue designing systems that are members, you can open their system diagrams.
Note
When you add an existing system diagram to your solution, some members of the system definition might appear orphaned by displaying certain alert indicators. In this scenario, a member appears orphaned when its definition is missing. To fix this issue, you must add the definition for that member or repair the relationship by choosing another definition for that member, if one exists. For more information, see Troubleshooting System Diagrams.
You can also perform the following tasks in System Designer:
Represent behavior for a system definition and its members by adding endpoints and defining contracts for that behavior.
Configure communication pathways between members. These pathways describe the connections between members in the deployment environment.
Override application settings as needed for deployment.
Delegate the behavior of a system definition to its members.
Expose the behavior of a system definition's members.
For more information, see the following topics: Overview of System Designer.
Designing Application Systems by Using a Bottom-Up Approach
You can design your system from a bottom-up approach by starting with Application Designer. You can begin by creating a distributed systems solution from the Application Design solution template. This template creates a solution that contains a blank application diagram. You can also begin by adding an application diagram to your solution or opening an existing one. When you add an application diagram to your solution, Visual Studio reverse-engineers any application projects that support visualization and displays the corresponding shapes on the diagram. Your solution can contain only one application diagram.
On this application diagram, you can define the applications that you want to include in your systems. You can perform this task by dragging predefined applications from the Toolbox. This creates definitions of these applications on the application diagram.
For example, you can begin a bottom-up approach by defining applications on the application diagram and creating a system from them. Visual Studio adds a system diagram to your solution for this new system definition. You can then continue refining your system's design. You can also begin a bottom-up approach in System Designer with the lowest-level or innermost system that you want to design. You can add applications as the most elemental members of that system. You can use this approach when you know the applications that you want to include as members of your systems. The definitions for the applications that you add as members will appear on the application diagram.
You can also perform the following tasks in Application Designer:
Represent behavior that applications provide or consume by adding endpoints and defining contracts for that behavior.
Configure connections between application definitions. These connections describe communication pathways between these applications in the development environment.
Specify application configuration requirements. You can perform this task by configuring settings and constraints on applications and endpoints.
Generate projects for applications that support implementation. This allows you to continue defining those applications in code.
For more information, see Overview of Application Designer.
Designing Logical Datacenters
Before you can define and evaluate deployment for an application system, your solution must contain a logical datacenter diagram. You can add an existing or blank logical datacenter diagram to your solution. You can also create a distributed systems solution from the Logical Datacenter Design template. This template creates a solution that contains a blank logical datacenter diagram. You can add multiple logical datacenter diagrams to your solution.
On this logical datacenter diagram, you can create a partial and abstract representation of the physical datacenter by using Logical Datacenter Designer. You can perform this task by dragging predefined logical servers, endpoints, and zones from the Toolbox. Logical servers represent the run-time environment to which you plan to deploy an application. Zones typically represent communication boundaries and regions in the datacenter.
You can also perform the following tasks in Logical Datacenter Designer:
Connect logical servers and zones. These connections describe communication pathways in the logical datacenter.
Specify application hosting requirements and restrict communication protocols. You can perform this task by configuring settings and constraints on logical servers, zones, and endpoints.
The following illustration shows how an example workflow might progress through the logical datacenter design process.
Logical Datacenter Design Workflow
For more information, see Overview of Logical Datacenter Designer.
Evaluating Deployment for Application Systems
You can define and evaluate deployment for an application system by using Deployment Designer. You can begin defining deployment by creating a deployment diagram from a system diagram. You must also select a logical datacenter diagram that represents your target deployment environment. The deployment diagram will mirror the logical datacenter diagram that you select. You can create multiple deployment diagrams for each system diagram.
Note
You can also create a deployment diagram from the application diagram. Visual Studio creates a default system so that you can quickly define and evaluate deployment for the applications on the application diagram. However, you cannot view or edit this default system, so you cannot configure its members for deployment. To define and evaluate actual deployment, create deployment diagrams from your system diagrams. For more information, see Deployment Definitions Created from Application and System Diagrams.
On this deployment diagram, you can specify where you want to deploy the applications from your system by binding them to logical servers. You can perform this task by dragging those applications from the System View window to those logical servers. The System View window displays all members of the root system, including applications from other systems in the root system.
Note
You cannot bind an application more than once to a logical server.
After you finish binding applications, you can validate the deployment diagram. This determines if conflicts exist between the settings and constraints on your applications and the logical servers that host them. After you finish validation, you can generate a deployment report in HTML format to document and resolve these issues. Visual Studio also creates an XML version of the deployment report so that you can create scripts to deploy the applications to physical servers.
The following illustration shows how an example workflow might progress through the system deployment evaluation process.
System Deployment Evaluation Workflow
For more information, see Overview of Deployment Designer.
See Also
Concepts
Overview of Distributed System Designers
Distributed System Designers Terminology Overview