Deployment

Elements

Nodes (Physical and Virtual Platforms)

A node is a platform that can execute programs. There are two types: physical and virtual.

Note: nodes can also be devices with limited or no processing power such as printers, terminals, etc.

A physical platform consists of a computer plus an operating system. For example:

UNIX/desktop

Windows/server

Windows/PDA

A virtual platform is a node simulation program running on a physical platform. We say that the virtual platform is hosted by the physical platform.

Virtual platforms are often designed as component containers. This means they manage third-party components. Managing components may include providing communication, lifecycle, discovery, and transaction services. The container may also specify a standard interface definition language (for example: WSDL, IDL, DCOM).

Examples of component containers (virtual platforms) include: J2SE, J2EE, .NET, MySQL.

We can regard a node such as UNIX/desktop as a class of computers. A node instance is a specific member of a node class. For example, a network may consist of three instances of the UNIX/desktop class: node1: UNIX/desktop, node2: UNIX/desktop, and node3: UNIX/desktop.

Nodes can be linked by communication channels. A communication channel can be stereotyped by the type of communication protocol nodes use to communicate over it.

Examples of communication protocols include:

<<RS-232>>
<<Ethernet>>, <<Token Ring>>
<<TCP/IP>, <<UDP/IP>>
<<FTP>>, <<HTTP>>, <<Telnet>>
<<SOAP>>, <<JDBC>>, <<RMI>>, <<CNP>>

Components and Artifacts

Component instances are manifested by artifacts. Artifacts are usually files (for example: .class, .jar, .exe, etc.) Often the distinction between component instance and artifact is not worth making.

Artifacts are deployed on nodes.

Deployment Diagrams

A deployment diagram consists of node instances, links, dependencies, and artifacts.

Although component instances don't usually appear in deployment diagrams, I find if useful to show them anyway. In fact, I would probably eliminate the artifacts and just show component instances being deployed directly on nodes.

Examples

More examples can be found in nodes.uml.

Models

nodes.uml

Reusable Model Fragments

physicalNodes.mfg

virtualNodes.mfg