You are on page 1of 6

Deployment Diagram - An Introduction

The deployment model describes how an application is deployed across an infrastructure. It is used to show the distribution
of components, typically across a multi-tier system or the deployment of components around a heterogeneous environment.
In other words, The Deployment diagram shows the physical configuration of run-time processing components of a
distributed system. The intention of the deployment model is not to describe the infrastructure, but rather the way in which
specific components belonging to an application is deployed across it. Thus, deployment diagrams act as the link and
reference point between how the system is built and where system components are deployed. For example, a three-tier web
application has three distinct nodes: a front-end web server, an application server, and a database server. There is also the
browser running on an end-user client node.

Note: A deployment diagram shows components and artifacts in relation to where they are used in the
deployed system. A component diagram defines the composition of components and artifacts in the
system.

Deployment Diagram Elements


Let's examine the UML components that make up a deployment diagram. There are only a few elements used, but they can
quickly become complicated if your development environment requires a lot of details. The following elements are used in a
deployment diagram:

Node
A node is a physical object that represents a processing resource.

Instance of Node
A node is shown as a figure that looks like a 3-dimensional view of a cube.

Component
A component represents a distributable piece of implementation of a system. There are two types of components:
Executable component

File component

Page 1 of 6
Deployment Diagram - An Introduction.doc

Connection
A connection is a physical link between two nodes or two executable components. It is defined by its name and stereotype.

Dependency
Dependency between elements can be represented graphically.
A dependency from a node to an executable component means the executable is running on the node.
A dependency from a component to a file component means the component needs the file to be built.
A dependency from a node to a file means that all the executable components running on the node need the file to be
built.

MyComponent runs on MyNode and needs MyCode.c file to be built.

Artifacts
Artifacts are model elements that represent the physical entities in a software system. Artifacts represent physical
implementation units, such as executable files, libraries, software components, documents, and databases.

You can also show the allocation of Artifacts to Nodes according to the Deployment defined between them.

Page 2 of 6
Deployment Diagram - An Introduction.doc

An alternative notation to containing the deployed artifacts within a deployment target symbol is to use a dependency labeled
«deploy» that is drawn from the artifact to the deployment target.

You can also use the textual list based representation to describe the deployment location of artifacts

Devices
A Device is notated by a Node annotated with the stereotype «device». It is a type of node that represents a physical
computational resource in a system, such as an application server.

Deployment specifications
Page 3 of 6
Deployment Diagram - An Introduction.doc

A deployment specification is essentially a configuration file, such as an XML document or a text file that defines how an
artifact is deployed on a node.

Execution environment
An execution environment is a type of node that represents a particular execution platform, such as an operating system,
EJB Server or a database management system. You can use execution environments to describe the context in which the
execution of a model takes place.

Aggregation
A node can be subdivided of nodes.

VmeRack node is subdivided of NewtorkBoard and ControlBoard

Node and components identifiers


Attributes are used by connected nodes or components to identify each other.

Page 4 of 6
Deployment Diagram - An Introduction.doc

CptB can connect to cptA1 via myNet connection by using NodeA1 myNet.id attribute and CptA1 myNet.id attribute.

Nodes' attribute can be omitted if not needed.

An Example: ATM
The deployment architecture of an ATM system typically consists of three major nodes: the ATM stations, the consortium
computer, and the bank computer. The topology is a simple star; the consortium communicates with all the ATM stations and
with all the bank computer. The architecture uses the station code and the bank code to distinguish the phone lines to the
consortium computer.

Another Example: A Java Online Web Application


Users invoke the web client through a Java enabled web browser such as IE or Firefox with the Java JVM plugin installed.
Through the Java Applet, user can select product item(s) they would like to order online by using the online Shopping Cart.
As the online transaction involves the credit card and personal information, users communicate with the web host using SSL
“Provided Interface” of the Java Servlet Component and it will then update the status to the Database Component through
the “Provided Interface” JDBC.

Page 5 of 6
Deployment Diagram - An Introduction.doc

Figure – Deployment Diagram for a Typical Java Online Web Application

Page 6 of 6