Flylib.com

Books Software

 
 
 

Professional Visual Studio 2005 Team System (Programmer to Programmer) - page 40


Summary

After introducing the Logical Datacenter Designer toolbox and the prototypes that it provides, we presented a sample logical datacenter diagram based on a real-life deployment configuration that one of the authors has encountered . That was to get you used to the idea of logical datacenter modeling and the style of the diagrams.

We then turned our attention to the StockBroker running example as a vehicle for specifying a logical datacenter in more detail.

Our original application design involved a number of applications, but some—such as the MarketMaker and StockMarket—we regarded as external and outside of our core design. You might wonder , therefore, why we modeled servers to host those applications in the logical datacenter. In part, we did that because the datacenter is defined by the operations team, which has less concern about which applications will be developed in house and which externally. If the external components are to be hosted in house (even if not developed in house), then operations will need to specify servers to host them. Otherwise, operations may need to model the characteristics of the third-party remote servers and zones on which they will be hosted, or maybe even specify to the third parties the characteristics that those servers and zones should exhibit—as part of the service-level agreement.

You saw how the settings and constraints for any server or endpoint may be accessed and manipulated, and you looked at some examples (although coverage of the full range of settings and constraints for every server type was not practical here).

Finally, you learned how to add your own prototypes to the toolbox, and how to share your prototypes in a team environment.

In Chapter 4, we'll pull together the application design from Chapter 2 and the logical datacenter design from this chapter by mapping the applications onto the datacenter.



Chapter 4: Defining Systems and Evaluating Deployments Using System Designer and Deployment Designer

Overview

Having discussed how to design a set of distributed applications using Application Designer in Chapter 2, and how to design one or more logical datacenters using Logical Datacenter Designer in Chapter 3, we'll now pull those two strands together and demonstrate how an application design may be mapped onto a logical datacenter for deployment.

Specifically, in this chapter we'll demonstrate the following:

  • How to define a default deployment directly from Application Designer, as a quick-start route into learning about deployment design without having to define systems explicitly

  • How to define systems explicitly, by combining groups of applications into systems that may be bound to logical servers in your datacenter using Deployment Designer

We'll contrast the two approaches and discuss important topics such as validating the deployment, specifying and overriding settings and constraints, nesting systems, and generating deployment reports .

Finally, we'll compare the Visual Studio 2005 Deployment Designer with the equivalent UML deployment diagram. It's similar, but not the same.



Introducing System Designer and Deployment Designer

Because we're presenting two designers in this chapter, the following sections introduce each one, with a particular emphasis on the coupling between the two.

Introducing System Designer

System Designer takes as input the application definitions that are created with Application Designer (Chapter 2) and produces as output a set of system definitions that will be evaluated for deployment using Deployment Designer. These system definitions are constructed using system diagrams.

In Visual Studio 2005 Team Edition for Software Architects, a system is a deployment unit comprising a number of applications (from Application Designer) and/or previously defined subsystems. The embedding of systems within systems enables large-scale distributed system scenarios to be defined as a hierarchy of nested systems.

System definitions allow deployment configurations—the settings and constraints discussed previously—to be defined independently of the development configurations described by the application design so that deployment configurations are fully decoupled from application designs. Application settings may be overridden by system settings, enabling various configurations of a single application design for different logical datacenters, different geographical locations, and even different customers.

Introducing Deployment Designer

Deployment Designer allows a system—defined previously using System Designer and comprising applications from Application Designer—to be evaluated for deployment to a logical datacenter defined previously using Logical Datacenter Designer. Applications are taken from the system and bound to the servers of the logical datacenter.

Once the applications constituting the system are bound to the servers of the logical datacenter, the deployment may be validated . This validation ensures that the bound applications meet the application constraints defined by the logical datacenter and that the logical servers meet the hosting constraints specified by the application design and/or system design.

Note

Settings defined using Application Designer may be overridden by constraints specified using System Designer.

Validation also ensures that communications pathways exist and are compatible between applications and servers.

Finally, a deployment report may be generated in human-readable format, or in XML as a feed to automated deployment scripting tools. The Deployment Report describes all the required application and datacenter configuration settings.

Toolbox and System View

The System Designer toolbox does not play as big a part in constructing diagrams as do the Application Designer and Logical Datacenter Designer toolboxes. It contains only two items: Comment and Connection. There are no prototypes because systems are composed of existing applications taken from the application design, so aside from establishing connections there is no need for toolbox items.

The System View (see Figure 4-1) provides the set of applications that you can drag onto diagrams in order to compose systems, so in that respect the System View acts as a kind of toolbox for System Designer.

image from book
Figure 4-1

In the case of Deployment Designer, it is also meaningless to show a toolbox comprising prototypes from which diagrams are created. Deployment diagrams are based entirely on existing logical datacenter diagrams, onto which applications are bound by dragging them from the System View.

The items available to you in the System View will depend on the applications you have defined using Application Designer and any systems you have already defined using System Designer. In addition, the contents of System View will vary according to what kind of diagram you're constructing. When using System Designer, the System View will show the list of application definitions and system definitions available in the solution, whereas when using Deployment Designer the System View will show only those applications belonging to the system that you're evaluating for deployment.