5.2 Nodes

A node is a resource that is available during execution time. (Nodes were mentioned in Chapter 2.) Traditionally, nodes refer to computers on a network, but in the UML a node may be a computer, printer, server, Internet, or any other kind of resource available to components. For example, the project management system may be deployed on the following nodes:

A desktop client

On which the user interface component executes

A printer

Which the project management system uses to print reports

A business-processing server

On which the business-processing component executes

A database server

On which the data component executes and where project-related information is stored

Nodes follow the type-instance dichotomy first discussed in Chapter 2 and applied to classes and objects in Chapter 3. You can use the UML to talk about classes of nodes, as well as specific nodes of a class. When speaking of a class of nodes, it's customary to use the terms node or node class. Thus, while you might think of a node as a specific thing, in the UML, a node really represents a class of nodes. When speaking of a specific component of a class, use the term node instance.

A node is available during execution time and is a resource on which components may execute. In the UML, a node is shown as a three-dimensional rectangle labeled with the node's name.

Figure 5-3 shows various nodes associated with the project management system, including a desktop client, business-processing server, database server, and printer node.

Figure 5-3. Nodes used by the project management system

A node instance is a specific node. For example, specific nodes used by the project management system include:

A desktop client node instance

Used by Jonathan to access the project management system

A desktop client node instance

Used by Andy to access the project management system

A group business-processing server node instance

Used by a group of users to manage projects

An enterprise business-processing server node instance

Used by a complete organization to manage projects

A node instance is shown similarly to a node class but labeled with the node instance name followed by a colon followed by the node class name, all fully underlined. Both names are optional, and the colon is present only if the node class name is specified.

Figure 5-4 shows various node instances of the node classes in Figure 5-3, including two desktop client node instances, named Jonathan's Computer and Andy's Computer, two business-processing node instances, named Group Server and Enterprise Server, a printer node instance, named Group Printer, and a database server node instance.

Figure 5-4. Node instances