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.
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.
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.
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.
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.
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.