Roles and Activities > Developer Role Set > Software Architect > Describe Distribution

  • To describe how the functionality of the system is distributed across physical nodes. Required only for distributed systems.
Input Artifacts: Resulting Artifacts:
Role: Software Architect
Tool Mentor:

Workflow Details:

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 naïve 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.

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.

Nevertheless, there are many cases where the system workload cannot be handled by one processor. This can be due to special processing requirements, as in the case of digital signal processing, which may require specialized and dedicated processors. It may also result from inherent scaling concerns, where the large numbers of concurrent users are simply too many to support on any single processor, or it may result from economic concerns, where the price performance of smaller, cheaper processors cannot be matched in larger models.

Define the Network Configuration To top of page

  • To understand the configuration and topology of the network.

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:

  • The physical layout of the network, including locations
  • The nodes on the network, their configurations and capabilities. The configuration includes both the hardware and the software installed on the nodes, the number of processors, the amount of disk space, the amount of memory, the amount of swap, etc. Hardware installed on the node can be represented using 'devices'.
  • The bandwidth of each segment on the network.
  • The existence of any redundant pathways on the network (this will aid in providing fault tolerance capabilities.
  • The primary purpose of the node. This includes:
    • workstation nodes used by end users
    • server nodes on which "headless" processing occurs (to simplify server configuration, server components can be packed into a "headless" image, which contains no user interface components)
    • special configurations used for development and test.
    • Other specialized processors
  • IP design and facilities (for example, DNS, VPN), if IP network exists
  • The part the Internet plays in the solution.


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

Allocate Processes to Nodes To top of page

  • To distribute the workload of the system.

Processes should be allocated to nodes so as to minimize the amount of cross-network traffic; processes which interact to a great degree should be co-located on the same node; processes which interact less frequently can reside on different nodes. The crucial decision, and one that sometimes requires iteration, is where to draw the line.

Allocation takes into account:

  • Node capacity (in terms of memory and processing power)
  • Communication medium bandwidth (bus, LANs, WANs)
  • Availability of hardware and communication links, rerouting
  • Requirements for redundancy and fault-tolerance
  • Response time requirements
  • Throughput requirements
  • …and so on.


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

Copyright  © 1987 - 2001 Rational Software Corporation

Display Rational Unified Process using frames

Rational Unified Process