Deploy Guide
Deploy Guide
Deployment diagrams are used to visualize the topology of the physical components of a system where the
software components are deployed.
So deployment diagrams are used to describe the static deployment view of a system. Deployment diagrams
consist of nodes and their relationships.
Purpose:
The name Deployment itself describes the purpose of the diagram. Deployment diagrams are used for
describing the hardware components where software components are deployed. Component diagrams and
deployment diagrams are closely related.
Component diagrams are used to describe the components and deployment diagrams shows how they are
deployed in hardware.
UML is mainly designed to focus on software artifacts of a system. But these two diagrams are special
diagrams used to focus on software components and hardware components.
So most of the UML diagrams are used to handle logical components but deployment diagrams are made to
focus on hardware topology of a system. Deployment diagrams are used by the system engineers.
The purpose of deployment diagrams can be described as:
Performance
Scalability
Maintainability
Portability
Nodes
The following deployment diagram is a sample to give an idea of the deployment view of order
management system. Here we have shown nodes as:
Monitor
Modem
Caching server
Server
The application is assumed to be a web based application which is deployed in a clustered environment using
server 1, server 2 and server 3. The user is connecting to the application using internet. The control is
flowing from the caching server to the clustered environment.
So the following deployment diagram has been drawn considering all the points mentioned above:
To clarify it in details we can visualize deployment diagrams as the hardware components/nodes on which
software components reside.
Software applications are developed to model complex business processes. Only efficient software
applications are not sufficient to meet business requirements. Business requirements can be described as to
support increasing number of users, quick response time etc.
To meet these types of requirements hardware components should be designed efficiently and in a cost
effective way.
Now a day's software applications are very complex in nature. Software applications can be stand alone,
web based, distributed, mainframe based and many more. So it is very important to design the hardware
components efficiently.
So the usage of deployment diagrams can be described as follows:
To model the hardware topology of a system.
To model embedded system.
To model hardware details for a client/server system.
To model hardware details of a distributed application.
Forward and reverse engineering.
Overview:
Deployment diagrams are used to visualize the topology of the physical components of a system where the
software components are deployed.
So deployment diagrams are used to describe the static deployment view of a system. Deployment diagrams
consist of nodes and their relationships.
Purpose:
The name Deployment itself describes the purpose of the diagram. Deployment diagrams are used for
describing the hardware components where software components are deployed. Component diagrams and
deployment diagrams are closely related.
Component diagrams are used to describe the components and deployment diagrams shows how they are
deployed in hardware.
UML is mainly designed to focus on software artifacts of a system. But these two diagrams are special
diagrams used to focus on software components and hardware components.
So most of the UML diagrams are used to handle logical components but deployment diagrams are made to
focus on hardware topology of a system. Deployment diagrams are used by the system engineers.
The purpose of deployment diagrams can be described as:
Performance
Scalability
Maintainability
Portability
Nodes
The following deployment diagram is a sample to give an idea of the deployment view of order management
system. Here we have shown nodes as:
Monitor
Modem
Caching server
Server
The application is assumed to be a web based application which is deployed in a clustered environment using
server 1, server 2 and server 3. The user is connecting to the application using internet. The control is
flowing from the caching server to the clustered environment.
So the following deployment diagram has been drawn considering all the points mentioned above:
UML Deployment
Diagrams
Deployment diagram shows execution architecture of systems that represent the assignment
(deployment) of software artifacts to deployment targets (usually nodes).
Nodes represent either hardware devices or software execution environments. They could be
connected through communication paths to create network systems of arbitrary
complexity. Artifacts represent concrete elements in the physical world that are the result of a
development process and are deployed on nodes.
Note, that components were directly deployed to nodes in UML 1.x deployment diagrams. In UML
2.x artifacts are deployed to nodes, and artifacts couldmanifest (implement) components. So
components are now deployed to nodes indirectly through artifacts.
The following nodes and edges are typically drawn in a UML deployment
diagram: deployment, artifact, association between artifacts, dependencybetween
artifacts, component, manifestation, node, device, execution
environment, composition of nodes, communication path, deployment specification,
deployment specification dependency, deployment specification association.
You can find some deployment diagrams examples here:
Artifact
An artifact is a classifier that represents some physical entity, a piece of information that is
used or is produced by a software development process, or by deployment and operation of a system.
Note, that in UML 2.4 artifact is also a subclass of deployed artifact. It is a weird, upside down
relationship, which is most likely a mistake. Deployed artifact is described by UML 2.4 as
an artifact or artifact instance that has been deployed to a deployment target. Common sense
assumes that deployed artifact should be a subclass of artifact and it should be allowed for some
artifacts not to be deployed.
Artifacts may have properties that represent features of the artifact, and operations that can be
performed on its instances. Artifacts have fileNameattribute - a concrete name that is used to refer
to the artifact in a physical context - e.g. file name or URI. Artifact could have nested artifacts.
Some real life examples of artifacts are:
text document
source file
script
binary executable file
archive file
table in a database
The UML Standard Profile defines several standard stereotypes that apply to artifacts:
file
library
executable
script
Table in database.
Standard stereotypes can be further specialized into implementation and platform specific
stereotypes in profiles. For example, Java profile might define jar as a subclass of executable
for executable Java archives. Specific profiles are expected to provide some stereotype for artifact
representing sets of files.
Artifacts are deployed to a deployment target. Instance specification was extended in UML to
allow instances of artifacts to be deployed artifacts in adeployment relationship.
An artifact is presented using an ordinary class rectangle with the keyword artifact. Examples
in UML specification also show document icon in upper right corner.
Artifact web-app.war
Library commons.dll
Artifact web-tools-lib.jar
Optionally, the underlining of the name of an artifact instance may be omitted, as the context is
assumed to be known to users.
Application book-club.ear artifact contains EJB user-service.jar artifact and deployment descriptor.
Manifestation
Manifestation is an abstraction relationship which represents concrete physical rendering
(implementation) of one or more model elements by an artifactor utilization of the model elements
in the construction or generation of the artifact. An artifact manifests one or more model elements.
Note, that since UML 2.0 artifacts can manifest any packageable elements, not
just components as it was in previous versions of UML.
The artifact owns the manifestations, each representing the utilization of a packageable element.
Specific profiles are expected to stereotype the manifestation relationship to indicate particular
forms of manifestation. For example, tool generated and custom code might be two
manifestations for different classes embodied in an artifact.
A manifestation is notated in the same way as abstraction, i.e. as a dashed line with an open arrow
head directed from artifact to packageable element, (e.g. to component or package) and is
labeled with the keyword manifest.
In UML 1.x, the concept of manifestation was referred to as implementation and annotated as
implement. Since this was one of the many uses of the word "implementation" this has been
replaced in UML 2.x by manifest.
Deployment Target
Artifacts are deployed to deployment targets. Deployment target is the location for a
deployed artifact.
Instance specification was extended in UML 2.0 to allow instance of a node to be deployment
target in a deployment relationship.
Property was also extended in UML 2.0 with the capability of being a deployment target in a
deployment relationship. This enables modeling the deployment to hierarchical nodes that have
properties functioning as internal parts.
Deployment target owns the set of deployments that target it.
Deployment target has no specific notation by itself, see notations for subclasses.
Node
Node is a deployment target which represents computational resource upon
which artifacts may be deployed for execution.
Node is shown as a perspective, 3-dimensional view of a cube.
Node is associated with deployments of artifacts and indirectly with packageable elements that
are involved in the manifestations by the artifact that is deployed on the node.
Nodes can be interconnected with communication paths. Communication paths can be defined
between nodes such as application server and database server to define the possible
communication paths between the nodes. Specific network topologies can then be defined
through links between node instances.
Node is specialized by:
device
execution environment
Hierarchical Node
Hierarchical nodes can be modeled using composition or by defining an internal structure.
Internal structure of the node is defined in terms of parts andconnectors. Parts of the node could
be only nodes.
Application server box runs several web servers and J2EE servers
Execution environment is usually part of a general node or device which represents the
physical hardware environment on which this execution environment resides. Execution
environments can be nested (e.g., a database execution environment may be nested in an operating
system execution environment).
Device
A device is a node which represents a physical computational resource with processing capability
upon which artifacts may be deployed for execution.
A device is rendered as a node (perspective, 3-dimensional view of a cube) annotated with keyword
device.
UML provides no standard stereotypes for devices. Examples of non-normative stereotypes for
devices are:
application server
client workstation
mobile device
embedded device
Device may be depicted using custom icon. Profiles, stereotypes, and tagged values could be
used to provide custom icons and properties for the devices.
Devices may be complex (i.e., they may consist of other devices) where a physical machine is
decomposed into its elements, either through namespace ownership or through attributes that are
typed by devices.
Execution Environment
An execution environment is a (software) node that offers an execution environment for specific
types of components that are deployed on it in the form of executable artifacts. Components of
the appropriate type are deployed to specific execution environments.
Execution environment implements a standard set of services that components require at
execution time (at the modeling level these services are usually implicit). For each deployment of
component, aspects of these services may be determined by properties in a deployment
specification for a particular kind of execution environment.
Execution environment is notated the same way as a node (perspective, 3-dimensional view of a
cube), annotated with the standard UML stereotype executionEnvironment.
OS
workflow engine
database system
J2EE container
web server
web browser
An execution environment can optionally have an explicit interface of system level services that
can be used by the deployed elements, in those cases where the modeler wants to make the execution
environment software execution environment services explicit.
Communication Path
A communication path is association between two deployment targets, through which they
are able to exchange signals and messages.
Note, that when deployment targets are some physical devices, communication path will typically
represent a physical connection between the nodes.
When deployment targets are execution environments, communication path will typically
represent some protocol.
TCP/IP protocol as communication path between J2EE server and database system.
Deployment
A deployment is a dependency relationship which describes allocation (deployment) of
an artifact to a deployment target. Deployment could be also defined at instance level - as
allocation of specific artifact instance to the specific instance of deployment target.
A component deployment is deployment of one or more artifacts or artifact instances, optionally
parameterized by a deployment specification.
It is not very clear why UML defines deployment as a dependency, and not as an association or
just a directed relationship. The major contradiction is that dependency in UML does not have
any runtime implications, and is defined in terms of the model elements, not in terms of their
instances. At the same time UML 2.4 allows and shows examples of instances of artifacts deployed to
instances of nodes.
Deployment could be shown as a dependency that is drawn from the artifact (supplier) to the
deployment target (client) and is labeled with deploy. Note, that dependency usually points from
the client to the supplier, i.e. in the direction opposite to what is recommended by UML 2.4 for
deployment. On the other hand, UML specification allows to change direction for a dependency
based on user's stipulations.
At the "instance level" instances of artifacts could be deployed to specific instances of the deployment
target. The underlining of the name of artifact instance may be omitted.
For modeling complex deployment target models consisting of nodes with a composite structure
defined through "parts," a property (that functions as a part) may also be the target of a deployment.
Deployment could be shown with deployed artifacts contained by a deployment target.
Deployment could be shown using textual list of deployed artifacts within a deployment target.
Deployment could be shown within a rectangular frame with deployment name in a compartment in
the upper left corner. The long form name for the diagram heading is deployment and abbreviated
form is dep.
Deployment Specification
A deployment specification is an artifact that specifies a set of deployment properties that
determine execution parameters of a component artifact that is deployed on a node. A
deployment specification can be aimed at a specific type of container for components.
An instance of a deployment specification with specific values for deployment properties may be
contained in a complex artifact.
Deployment Specification
Dependency
Deployment Specification
Association
Deployment specification could be associated with the deployment of a component
artifact on a node. In this case deployment specification could be shown as a classifier rectangle
attached to the deployment.
Note, that UML 2.4 specification shows this association as a dashed line (while association is
normally displayed as solid line.)
Deployment diagram
Notation
Definition
Aggregation
(Shared
association)
Artifact
Association
(Without
aggregation)
Component
Composition
(Composite
association)
Constraint
Dependency
Deployment
Deployment
Specification
Device Node
Execution
Environment
Node
Generalizatio
n
Instance
Specification
Interface
Link
Manifestation
Node
Note
Port
Realization
Usage
Definition
A kind of association that has one of its end marked shared as
kind of aggregation, meaning that it has a shared aggregation.
Properties
Name
Visibility
Association End
From
Description of aggregation.
Abstract
aggregations.
Leaf
Derived
Artifact
Definition
An artifact is the specification of a physical piece of information
that is used or produced by a software development process, or
by deployment and operation of a system. Examples of artifacts
include model files, source files, scripts, and binary executable
files, a table in a database system, a development deliverable,
or a word-processing document, a mail message.
Properties
Name
Visibility
File name
Documentation
Description of artifact.
Abstract
Leaf
Attributes
Operations
Definition
An association specifies a semantic relationship that can occur
between typed instances. It has at least two ends represented
by properties, each of which is connected to the type of the end.
More than one end of the association may have the same type.
An end property of an association that is owned by an end class
or that is a navigable owned end of the association indicates that
the association is navigable from the opposite ends; otherwise,
the association is not navigable from the opposite ends.
Properties
Name
Visibility
Association End
From
Documentation
Description of association.
Abstract
Leaf
Derived
Component
Definition
A component represents a modular part of a system that
encapsulates its contents and whose manifestation is
replaceable within its environment.
A component defines its behavior in terms of provided and
required interfaces. As such, a component serves as a type
whose conformance is defined by these provided and required
interfaces (encompassing both their static as well as dynamic
semantics). One component may therefore be substituted by
another only if the two are type conformant. Larger pieces of a
system?s functionality may be assembled by reusing
components as parts in an encompassing component or
assembly of components, and wiring together their required and
provided interfaces.
A component is modeled throughout the development life cycle
and successively refined into deployment and run-time. A
component may be manifest by one or more artifacts, and in
turn, that artifact may be deployed to its execution environment.
A deployment specification may define values that parameterize
the component?s execution.
Properties
Name
Visibility
Documentation
Description of component.
Abstract
Leaf
Root
Active
Indirectly
instantiated
Definition
An association may represent a composite aggregation (i.e., a
whole/part relationship). Only binary associations can be
aggregations. Composite aggregation is a strong form of
aggregation that requires a part instance be included in at most
one composite at a time. If a composite is deleted, all of its parts
are normally deleted with it. Note that a part can (where allowed)
be removed from a composite before the composite is deleted,
and thus not be deleted as part of the composite. Compositions
Properties
Name
Visibility
Association End
From
Description of association.
Abstract
Leaf
Derived
Constraint
Definition
A condition or restriction expressed in natural language text or in
a machine readable language for the purpose of declaring some
of the semantics of an element.
Dependency
Definition
A dependency is a relationship that signifies that a single or a set
of model elements requires other model elements for their
specification or implementation. This means that the complete
semantics of the depending elements is either semantically or
structurally dependent on the definition of the supplier
element(s).
Properties
Name
Supplier
Client
Visibility
Documentation
Description of dependency.
Deployment
Definition
A deployment is the allocation of an artifact or artifact instance to
a deployment target.
Properties
Name
Visibility
Documentation
Description of deployment.
Deployment Specification
Definition
A deployment specification specifies a set of properties that
determine execution parameters of a component artifact that is
deployed on a node. A deployment specification can be aimed at
a specific type of container. An artifact that reifies or implements
deployment specification properties is a deployment descriptor.
Properties
Name
Visibility
File name
Deployment
location
Abstract
Leaf
Nested Arifacts
Attributes
Operations
specification.
Device Node
Definition
A Device is a physical computational resource with processing
capability upon which artifacts may be deployed for execution.
Devices may be complex (i.e., they may consist of other
devices).
Properties
Name
Visibility
Documentation
Description of node.
Abstract
Leaf
Root
Active
Nested Nodes
Resident
Components
Attributes
Operations
Template
Parameters
Class Code
Details
Definition
An ExecutionEnvironment is a node that offers an execution
environment for specific types of components that are deployed
on it in the form of executable artifacts.
Properties
Name
Visibility
Documentation
Description of node.
Abstract
Leaf
Root
Active
Nested Nodes
Resident
Components
Attributes
Operations
Template
Parameters
Class Code
Details
Generalization
Definition
A generalization is a taxonomic relationship between a more
general classifier and a more specific classifier. Each instance of
the specific classifier is also an indirect instance of the general
classifier. Thus, the specific classifier inherits the features of the
more general classifier.
Instance Specification
Definition
An instance specification is extended with the capability of being
a deployment target in a deployment relationship, in the case
that it is an instance of a node. It is also extended with the
capability of being a deployed artifact, if it is an instance of an
artifact.
Properties
Name
Specification
Documentation
Classifier
Slots
Interface
Definition
An interface is a kind of classifier that represents a declaration of
a set of coherent public features and obligations. An interface
specifies a contract; any instance of a classifier that realizes the
interface must fulfill that contract. The obligations that may be
associated with an interface are in the form of various kinds of
Properties
Name
Parent
Visibility
Documentation
Description of interface.
Abstract
Leaf
Root
Active
Business model
Attributes
Template
Parameters
Class Code
Details
Link
Definition
An association declares that there can be links between
instances of the associated types. A link is a tuple with one value
for each end of the association, where each value is an instance
of the type of the end.
Properties
Name
From
To
Specification
Classifiers
Slots
Documentation
Description of link.
Manifestation
Definition
A manifestation is the concrete physical rendering of one or
more model elements by an artifact.
Node
Definition
A node is computational resource upon which artifacts may be
deployed for execution. Node is a subclass of Class. It is
associated with a Deployment of an Artifact. It is also associated
with a set of Elements that are deployed on it. This
Properties
Name
Visibility
Documentation
Description of node.
Abstract
Leaf
Root
Active
Nested Nodes
Resident
Components
Attributes
Template
Parameters
Class Code
Details
Note
Definition
A note (comment) gives the ability to attach various remarks to
elements. A comment carries no semantic force, but may contain
information that is useful to a modeler.
Port
Definition
A port is a property of a classifier that specifies a distinct
interaction point between that classifier and its environment or
between the (behavior of the) classifier and its internal parts.
Ports are connected to properties of the classifier by connectors
through which requests can be made to invoke the behavioral
features of a classifier. A Port may specify the services a
classifier provides (offers) to its environment as well as the
services that a classifier expects (requires) of its environment.
Properties
Name
Multiplicity
Visibility
Type
Type Modifier
Aggregation
Default Value
Redefined Port
Documentation
Description of port.
Leaf
Static
Read Only
Derive
Derived Union
Service
Behavior
Realization
Definition
Realization is a specialized abstraction relationship between two
sets of model elements, one representing a specification (the
supplier) and the other represents an implementation of the
latter (the client). Realization can be used to model stepwise
refinement, optimizations, transformations, templates, model
synthesis, framework composition, etc.
Usage
Definition
A usage is a relationship in which one element requires another
element (or set of elements) for its full implementation or
operation. In the metamodel, a Usage is a Dependency in which
the client requires the presence of the supplier.
Properties
Name
Supplier
Client
Visibility
Documentation