UML Deployment Diagrams Examples
Here we provide some examples of UML deployment diagrams:
- Web Application Manifestation
- Web Application Deployment
- Multilayered Load Balancing
- Clustered Deployment of J2EE Web Application
- Apple iTunes Deployment
- Android Application Deployment
- Web Application Network Diagram
UML provides no special kind of diagram to describe logical or physical network architecture of the designed or existing system. Deployment diagrams could be used for this purpose with elements limited mostly to devices with neither artifacts nor actual deployments shown.
This example of the network diagram shows network architecture with configuration usually called "two firewall demilitarized zone (DMZ)". DMZ is a host or network segment located in a "neutral zone" between the Internet and an organization’s intranet (private network). It prevents outside users from gaining direct access to an organization’s internal network while not exposing a web, email or DNS server directly to the Internet.
Web Application Manifestation
This is an example of UML deployment diagram which shows manifestation of components by artifacts and internal structure of artifacts. I would call this kind of deployment diagrams manifestation diagrams or implementation diagrams as they actually do not show any deployments.
Example of manifestation diagram for web application.
Web application archive artifact book_club_app.war contains several files, folders and subfolders. Stereotypes «file» and «library» are standard UML stereotypes applicable to artifacts. This diagram also shows non-standard stereotype «folder» which is rendered as package.
Several components are shown on the diagram manifested (implemented) by jar archive files.
Web Application Deployment
An example of deployment diagram for web application. Book club web application artifact book_club_app.war is deployed on Catalina Servlet 2.4 / JSP 2.0 Container which is part of Apache Tomcat 5.5 web server.
An example of deployment diagram for web application.
Multilayered Load Balancing
An example of deployment diagram with hardware and software load balancing and clusters.
A network load balancer is an appliance device that is used to split network load across multiple servers. An example shows jetNEXUS ALB-X hardware load balancer. It combines the functions of OSI Layer 7 (Application Layer) load balancing, HTTP compression, SSL offload and content caching in one solution.
An example of deployment diagram with hardware load balancing.
Configuration shown has 2 active hardware load balancers connected to 2 to 4 Sun Fire Servers. Each server has 3 instances of IBM WebSphere 7 J2EE application servers installed, so we have both vertical and horizontal clustering.
When database connection is requested by application, Oracle run-time connection load balancing selects connection that belongs to the best instance from the connection cache provided by Oracle RAC (Real Application Clusters) database.
Clustered Deployment of J2EE Web Application
Another example of deployment diagram for J2EE web application with load balancing and clustering which shows specific server instances involved.
All 4 instances of Apache Tomcat servers save/receive data to/from a single instance of Oracle 11g DBMS, which could become a performance bottleneck if web application is data-intensive.
Load balanced and clustered deployment of J2EE web application
Apple iTunes Deployment
An example of deployment diagram for Apple iTunes application.
The iTunes setup application could be downloaded from iTunes website and installed on a home computer. After installation and registration iTunes application could communicate with Apple iTunes Store. Customer can buy and download music, video, TV shows, audiobooks, etc. and store it in media library.
Mobile devices like Apple iPod Touch and Apple iPhone could update own media libraries from home computer with iTunes through USB, or could download media directly from Apple iTunes Store using some wireless protocol like Wi-Fi, 3G, or EDGE.
An example of deployment diagram for Apple iTunes
Android Application Deployment
This is an example of UML deployment diagram which shows deployment of an application to Android.
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android relies on Linux OS for core system services such as security, memory management, process management, network stack, and driver model. The Linux kernel also acts as an abstraction layer between the hardware and the rest of the software stack.
Android applications are written in Java. Android SDK tools compile and package the code along with any required data and resource files into Android application archive file having .apk suffix. The .apk file represents one Android application to be deployed to the Android-enabled mobile devices.
Example of application deployment to Android.
Android applications are composed of one or more application components (activities, services, content providers, and broadcast receivers). Each component performs a different role in the overall application behavior, and each one can be activated individually (even by other applications).
The manifest (deployment specification) file AndroidManifest.xml describes application requirements, such as the minimum version of Android required and any supported hardware configurations, and it also declares all components in the application.
With Android API Level 8 or later, application could be installed on the external storage (for example, on the SD card). This is an optional feature that could be requested for the specific application using a manifest attribute. By default, application is installed on the internal storage of the mobile device and cannot be moved to the external storage.