Activity:
|
Purpose
|
|
Role: Software Architect | |
Frequency: Once per iteration, especially during the Elaboration phase. | |
Steps | |
Input Artifacts: | Resulting Artifacts: |
Tool Mentors: | |
More Information: |
Workflow Details: |
This activity defines the deployment architecture for the system in terms of physical nodes and their interconnections. During Activity: Architectural Analysis, an initial Deployment Model was defined. In this activity, that Deployment Model (specifically the Deployment View) is refined to reflect the current design.
Early in the Elaboration phase, the deployment view is usually quite preliminary, but by late Elaboration it should be well-defined.
Purpose | To define the extent to which distribution is required for the system. |
Distribution requirements are driven by:
As with many architectural problems, these requirements might be somewhat mutually exclusive. It's not uncommon to have, at least initially, conflicting requirements. Ranking requirements in terms of importance will help resolve the conflict.
Purpose | Define the configuration and topology of the network. |
In this step, the initial Deployment Model (defined in Activity: Architectural Analysis) is refined to support the distribution requirements identified in the previous step.
The topology of the network, and the capabilities and characteristics of the processors and devices on the network, will determine the nature and degree of distribution possible in the system.
The following information needs to be captured:
Example
The following diagram illustrates the Deployment View for the ATM
Deployment View for the ATM
The diagram illustrates two Nodes (the ATM itself, which is the focus of this example), and the ATM Network Server, through which all connections to the inter-bank network are made. Though the ATM Network Server is out of scope for the builders of the ATM, we show it here to illustrate how network bandwidth can be documented. The diagram also shows the processes and threads which execute on the ATM Node, which are discussed in the next step Allocate system elements to nodes.
Note the use of annotation to document processor and network capacity. Such documentation can also be presented in the documentation fields of the Node (or the devices), in which case it is not displayed in the diagram.
Purpose | To distribute the workload of the system. |
In this step, system elements are allocated to the nodes defined in the previous step. Deployment can be described from both a logical and a physical perspective.
Logical deployment is where logical elements (classes, subsystems, or instances of these) are mapped to nodes. These may include threads of control. For example, a logical deployment might state that the AuctionManager subsystem is deployed to the Application server.
Physical deployment is where the files are mapped to nodes. For example, a physical deployment might say that the CloseAuctionTimer.class file is deployed to server76.
Distribution is one area where the sum can be, and usually is, less than the sum of the parts. Achieving real benefits to distribution requires work and careful planning. When deciding what elements will be mapped to what nodes, the following needs to be considered:
Elements are allocated to nodes with the intent of minimizing the amount of cross-network traffic; elements that interact to a great degree should be collocated on the same node; whereas elements that interact less frequently can reside on different nodes. The crucial decision, and one that sometimes requires iteration, is where to draw the line. The distribution of processes across two or more nodes requires a closer examination of the patterns of inter-process communication in the system. Often, there is a naive perception that distribution of processing can off-load work from one machine onto a second. In practice, the additional inter-process communication workload can easily negate any gains made from workload distribution if the process and node boundaries are not considered carefully.
Example
The previous example diagram, the Deployment View for the ATM, illustrates for the ATM Node the allocation of processes onto the node. There is a single process (ATM Main), which in turn consists of three separate threads of control (Customer Interface, ATM Network Interface, and Device Controller).
Some environments provide mechanisms to automate and/or simplify distribution. For example:
The use of such supporting distribution mechanisms, and how they need to be
configured and mapped to physical nodes to meet the distribution requirements,
should be documented as part of the Deployment View.
Rational Unified Process |